算法竞赛入门【码蹄集新手村600题】(MT1100-1120)C语言

news2024/11/17 13:47:26

算法竞赛入门【码蹄集新手村600题】(MT1100-1120)C语言

  • 目录
    • MT1101 带参数的宏II
    • MT1102 长方体
    • MT1103 球体积
    • MT1104 三角形
    • MT1105 英寸英尺英里
    • MT1106 盎司磅
    • MT1107 加仑/升
    • MT1108 保留小数
    • MT1109 和10相比
    • MT1110 最小值
    • MT1111 最大值
    • MT1112 中庸之道
    • MT1113 三人同行
    • MT1114 偶数还是奇数
    • MT1115 小于m的偶数
    • MT1116 正整数
    • MT1117 两个负数
    • MT1118 等差数列
    • MT1119 大小写的转换
    • MT1120 老师的评语

在这里插入图片描述
码蹄集网站地址:https://www.matiji.net/exam/ojquestionlist


目录

MT1101 带参数的宏II

(1)题目
请编写一个简单程序,把f(x)=x*(x-1)定义成带参数的宏,从键盘输入a,b,将a+b的和作为宏实参计算并输出结果。


格式

输入格式:
输入整型,空格分隔。


输出格式:
输出为实型

样例1

输入:
3 5

输出:
56.000000

(2)参考代码

#include<stdio.h>
#define f(x) ((x)*((x)-1))
int main() 
{
    int a, b;
    scanf("%d %d", &a, &b);
    printf("%lf\n", (double)f(a+b));
    return 0; 
}

MT1102 长方体

(1)题目
将长方体体积计算公式定义为宏。在主函数中输入长方体长、宽、高求体积。不考虑不合理的输入或是溢出等特殊情况。


格式

输入格式:
输入为实型(正数),空格分隔。


输出格式:
输出为实型

样例1

输入:
3 4 5

输出:
60.000000

(2)参考代码

#include<stdio.h>
#define VOLUME(x, y, z) ((x)*(y)*(z))
int main() 
{
    double x, y, z;
    scanf("%lf %lf %lf", &x, &y, &z);
    printf("%lf\n", VOLUME(x, y, z));
    return 0; 
}

MT1103 球体积

(1)题目
将球体积计算公式定义为宏。在主函数中输入半径求体积。


格式

输入格式:
输入为实型 


输出格式:
输出为实型

样例1

输入:
3.5

输出:
179.594228

(2)参考代码

#include<stdio.h>
#define PI 3.14159
#define VOLUME(r) (4.0/3.0*PI*(r)*(r)*(r))
int main() 
{
    double r;
    scanf("%lf", &r);
    printf("%lf\n", VOLUME(r));
    return 0; 
}

MT1104 三角形

(1)题目
在这里插入图片描述


格式

输入格式:
 输入为实型

输出格式: 
输出为实型

样例1

输入格式: 
3 4 5

输出格式: 
6.000000

(2)参考代码

#include<stdio.h>
#include <math.h>
#define Area(a, b ,c, s) (sqrt((s)*((s)-(a))*((s)-(b))*((s)-(c))))
int main() 
{ 
    double a, b, c, s;
    scanf("%lf %lf %lf", &a, &b, &c);
    s = (a + b + c) / 2;
    if (a+b>c && a+c>b && b+c>a)
    {
        printf("%lf", Area(a, b, c, s));
    }
    else
    {
        printf("%d", -1);
    }
    return 0; 
}

MT1105 英寸英尺英里

(1)题目
定义关于长度的宏,英寸/厘米、英尺/米、英里/公里,计算英制与公制单位转换,在主函数中输入数据输出计算结果。假定1英寸=2.54厘米、1英尺=0.31米、1英里=1.61公里。


格式

输入格式:
输入英寸、英尺、英里为实型,空格分隔。


输出格式:
输出厘米、米、公里为实型,空格分隔。保留2位小数。


样例1

输入:
1 1 1

输出:
2.54 0.31 1.61 

(2)参考代码

#include<stdio.h>
#define INCH_cm(x) ((x) * 2.54)
#define FEET_m(x) ((x) * 0.31)
#define MILE_km(x) ((x) * 1.61)
int main() 
{
    double a, b, c;
    scanf("%lf %lf %lf", &a, &b, &c);
    printf("%.2lf %.2lf %.2lf\n", INCH_cm(a), FEET_m(b), MILE_km(c));
    return 0; 
}

MT1106 盎司磅

(1)题目
定义关于重量的宏,盎司/克、磅/公斤,计算美制单位与公制转换,在主函数中输入数据输出计算结果。


格式

输入格式:
输入盎司、磅为实型,空格分隔

输出格式:
输出克、公斤实型,空格分隔。保留2位小数。

样例1

输入格式:
1 1

输出格式: 
28.35 0.45

(2)参考代码

#include<stdio.h>
#define oz_g(oz) ((oz)*28.35)
#define lb_kg(lb) ((lb)*0.45)
int main() 
{ 
    double oz, lb;
    scanf("%lf %lf", &oz, &lb);
    printf("%.2lf %.2lf", oz_g(oz), lb_kg(lb));
    return 0; 
}

MT1107 加仑/升

(1)题目
定义关于容量的宏,加仑/升,计算单位转换,在主函数中输入数据输出计算结果。


格式

输入格式:
输入加仑为实型。


输出格式:
输出升为实型,保留2位小数。

样例1

输入:
1

输出:
3.79 

(2)参考代码

#include<stdio.h>
#define GALLON_LITRE(x) ((x) * 3.79)
int main() 
{
    double x;
    scanf("%lf", &x);
    printf("%.2lf\n", GALLON_LITRE(x));
    return 0; 
}

MT1108 保留小数

(1)题目
将一个浮点型K数保留n(1≤n≤5)位小数(四舍五入)的算法定义为宏。在主函数中输入数据输出计算结果。


格式

输入格式:
输入k为实型,n为整数,空格分隔。


输出格式:
输出为实型

样例1

输入:
3.1415926 3 

输出:
3.142

(2)参考代码

#include<stdio.h>
#define ROUND_UP(k, n) printf("%.*lf", (n), (k))
int main() 
{
    double k;
    int n;
    scanf("%lf %d", &k, &n);
    ROUND_UP(k, n);
    return 0; 
}

MT1109 和10相比

(1)题目
请编写一个简单程序,输入一个整数,和10比较,输出比较结果


格式

输入格式:
输入整型 


输出格式:
输出…大于或者等于或者小于10 

样例1

输入:
1

输出:
1小于10 

(2)参考代码

#include<stdio.h>
int main() 
{
    int x;
    scanf("%d", &x);
    if (x > 10)
    {
        printf("%d大于10", x);
    }
    else if (x < 10)
    {
        printf("%d小于10", x);
    }
    else
    {
        printf("%d等于10", x);
    }
    return 0; 
}

MT1110 最小值

(1)题目
输入a,b两个整数,输出他们之间的最小值


格式

输入格式:
输入2个整数用空格分隔


输出格式:
输出为整型

样例1

输入:
2 8 

输出:
2

(2)参考代码

#include<stdio.h>
int main() 
{
    int a, b;
    scanf("%d %d", &a, &b);
    if (a > b)
    {
        printf("%d", b);
    }
    else
    {
        printf("%d", a);
    }
    return 0; 
}

MT1111 最大值

(1)题目
输入a,b两个整数,输出他们之间的最大值


格式

输入格式:
输入2个整数用空格分隔


输出格式:
输出为整型

样例1

输入:
2 8

输出:
8

(2)参考代码

#include<stdio.h>
int main() 
{
    int a, b;
    scanf("%d %d", &a, &b);
    if (a > b)
    {
        printf("%d", a);
    }
    else
    {
        printf("%d", b);
    }
    return 0; 
}

MT1112 中庸之道

(1)题目
请编写一个简单程序,输入3个整数,比较他们的大小,输出中间的那个数


格式

输入格式:
输入整型,空格分隔


输出格式:
输出整型 

样例1

输入:
1 5 3

输出:
3

(2)参考代码

#include<stdio.h>
int main() 
{
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    if ((a > b && b > c) || (a < b && b < c))
    {
        printf("%d", b);
    }
    else if((c > a && a > b) || (c < a && a < b))
    {
        printf("%d", a);
    }
    else
    {
        printf("%d", c);
    }
    return 0; 
}

MT1113 三人同行

(1)题目
三人同行,输入他们的年龄,输出最年长者的年龄


格式

输入格式: 
输入整型,空格分隔

输出格式: 
输出整型

样例1

输入格式:
 1 66 70

输出格式: 
70

(2)参考代码

#include<stdio.h>
#define max(x, y) ((x)>(y)?(x):(y))
int main() 
{ 
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    printf("%d", max(max(a, b), max(a, c)));
    return 0; 
}

MT1114 偶数还是奇数

(1)题目
请编写一个简单程序,检查一个正整数是偶数还是奇数,如果是偶数输出Y,否则输出N。(不考虑0)


格式

输入格式:
输入整型 


输出格式:
输出Y或者N

样例1

输入:
4

输出:
Y

(2)参考代码

#include<stdio.h>
int main() 
{
    int x;
    scanf("%d", &x);
    if (x % 2 == 0)
    {
        printf("Y");
    }
    else
    {
        printf("N");
    }
    return 0; 
}

MT1115 小于m的偶数

(1)题目
判断n是否为小于m的偶数,不考虑0,负数或者其他特殊情况。


格式

输入格式:
输入为整型n、m,空格分隔


输出格式:
是则输出YES否则输出NO

样例1

输入:
3 6

输出:
NO

(2)参考代码

#include<stdio.h>
int main() 
{
    int n, m;
    scanf("%d %d", &n, &m);
    if (n < m && n % 2 == 0)
    {
        printf("YES");
    }
    else
    {
        printf("NO");
    }
    return 0; 
}

MT1116 正整数

(1)题目
判断n是否为两位数的正整数


格式

输入格式:
输入为整型n


输出格式:
是则输出YES否则输出NO

样例1

输入:
11

输出:
YES

(2)参考代码

#include<stdio.h>
int main() 
{
    int x;
    scanf("%d", &x);
    if ((x >= 10) && (x <= 99))
    {
        if (x >= 0)
        {
            printf("YES");
        }
        else
        {
            printf("NO");
        }
    }
    else
    {
        printf("NO");
    }
    return 0; 
}

MT1117 两个负数

(1)题目
判断x、y、z中是否有两个负数。


格式

输入格式:
输入为整型x、y、z,空格分隔


输出格式:
是则输出YES否则输出NO

样例1

输入:
1 2 3

输出:
NO

(2)参考代码

#include<stdio.h>
int main() 
{
    int x, y, z;
    scanf("%d %d %d", &x, &y, &z);
    if ((x<0 && y<0) || (x<0 && z<0) || (z<0 && y<0))
    {
        printf("YES");
    }
    else
    {
        printf("NO");
    }
    return 0; 
}

MT1118 等差数列

(1)题目
判断a、b、c是否为一个等差数列中的连续三项。


格式

输入格式: 
输入为整型a、b、c,空格分隔

输出格式: 
是则输出YES否则输出NO

样例1

输入格式: 
1 2 3

输出格式: 
YES

(2)参考代码

#include<stdio.h>
int main() 
{
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    if ((c-b) == (b-a))
    {
        printf("YES\n");
    }
    else
    {
        printf("NO");
    }
    return 0; 
}

MT1119 大小写的转换

(1)题目
请编写一个简单程序,实现输入字符大小写的转换。其他非法输入(非字母的输入)则原样输出。


格式

输入格式:
输入字符型 


输出格式:
输出字符型 

样例1

输入:
A

输出:
a

(2)参考代码

#include<stdio.h>
#include<ctype.h>
int main() 
{
    char str;
    scanf("%c", &str);
    if (isalpha(str))
    {
        if (str>=65&&str<=90)
        {
            str += 32;
            printf("%c", str);
        }
        else
        {
            str -= 32;
            printf("%c", str);
        }
    }
    else
    {
        printf("%c", str);
    }
    return 0; 
}

MT1120 老师的评语

(1)题目
请编写一个简单程序,输入学生成绩等级ABCD,输出相应的评语“Excellent” 、 “Well done" 、 “You passed"、“Better luck next time"。非法输入时候则输出“Invalid grade"


格式

输入格式: 
输入字符型

输出格式: 
输入字符评语

样例1

输入格式:
 A

输出格式: 
Excellent

(2)参考代码

#include<stdio.h>
int main() 
{ 
    char level;
    scanf("%c", &level);
    if (level == 'A')
    { 
        printf("Excellent");
    }
    else if (level == 'B')
    {
        printf("Well done");
    }
    else if (level == 'C')
    {
        printf("You passed");
    }
    else if (level == 'D')
    {
        printf("Better luck next time");
    }
    else
    {
        printf("Invalid grade");    
    }
    return 0; 
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/837405.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这可是全网最全的网络工程师零基础实战视频整理,最新版分享

互联网中每一项傍身的技能都是需要从如何入门开始的&#xff0c;网络技术也是如此&#xff01; 网络技术区别其他互联网技能的一点是学习需要从设备开始&#xff0c;只有认识了解了路由器、交换机、防火墙这些网络设备&#xff0c;才开始从网络通信原理开始&#xff0c;这使得网…

数据安全与可追溯:PDM系统的信息保护锦囊

在当今数字化时代&#xff0c;数据安全与可追溯是企业管理中至关重要的环节。PDM系统&#xff08;Product Data Management&#xff0c;产品数据管理&#xff09;作为一款强大的数字化工具&#xff0c;为企业提供了全方位的信息保护锦囊。让我们一同深入探讨&#xff0c;看看PD…

k8s手动发布镜像的方法

kubectl edit deploy编辑对应的文件&#xff0c;并:wq!保存即可

STL C++学习背景

STL C学习背景 背景知识 背景知识 STL前置知识 STL&#xff0c;英文全称 standard template library&#xff0c;中文可译为标准模板库或者泛型库&#xff0c;其包含有大量的模板类和模板函数&#xff0c;是 C 提供的一个基础模板的集合&#xff0c;用于完成诸如输入/输出、数…

2023新款MacBook Pro 14效果如何

新款MacBook Pro 14 显示屏背面依然保持着苹果LOGO&#xff0c;而且比Air大一圈&#xff0c;看来贵是有道理的&#xff0c;LOGO都变大了&#xff01;该机配件是一个67W的充电头&#xff0c;以及MagSafe 3的充电线。而机身金属感十足&#xff0c;上手体验&#xff0c;确实有万元…

Java阶段五Day21

Java阶段五Day21 文章目录 Java阶段五Day21问题解析rocketmq清空数据 linux学习背景什么是linux系统虚拟机介绍启动 虚拟机linux虚拟机网络的问题 linux系统的基础命令命令提示符命令格式pwd指令ls指令cd指令mkdirtouch指令cp指令rm指令mv指令cat指令tail指令 文本编辑器vim操作…

代码随想录算法训练营第八天| 28.找到字符串中第一个匹配项的下标,459.重复的子字符串(二刷三刷)

28. 找出字符串中第一个匹配项的下标 28.找到字符串中第一个匹配项的下标 KMP算法 原串&#xff1a;sadbutsad 匹配串&#xff1a;sad 构造next数组其实就是计算模式串s的前缀表的过程。与原串是无关的 关于最长公共前缀和最长公共后缀&#xff1a; 前缀是指不包含最后一…

cmake配置Qt工程

cmake 工程配置 # 指定版本和项目 cmake_minimum_required(VERSION 3.10) set(TARGET_NAME labelDeviceView) project(${TARGET_NAME} ) include(${CMAKE_CURRENT_LIST_DIR}/../../../../../../ossLib/ossLib/env.cmake) set(CMAKE_PREFIX_PATH "D:/Qt6/6.5.2/msvc2019…

进程复制fork详解 僵尸进程 孤儿进程 写时拷贝技术 缓冲区

fork函数讲解 进程复制fork基本使用简单分页 逻辑页 物理页 页表fork的三个面试练习题缓冲区僵死进程孤儿进程写时拷贝 进程替换exexc 介绍简易命令解释器strtok()函数讲解 进程复制 fork基本使用 父进程fork后&#xff0c;新的进程产生&#xff0c;新的进程就继续从fork往后的…

Spring集成Web

目录 1、简介 2、监听器 3、Spring提供的listener 3.1、xml 3.2、配置类 3.3、WebApplicationContextUtils 3.4、说明 4、自己复现的listener 4.1、ContextLoaderListener 4.2、WebApplicationContextUtils 4.3、Web调用 ⭐作者介绍&#xff1a;大二本科网络工程专业…

Less is More: Focus Attention for Efficient DETR

摘要 类似detr的模型显著提高了探测器的性能&#xff0c;甚至优于经典的卷积模型。然而&#xff0c;在传统的编码器结构中&#xff0c;所有的标记都带来了冗余的计算负担。最近的稀疏化策略利用了信息标记的一个子集&#xff0c;通过稀疏编码器来降低注意力的复杂性&#xff0…

观测,让运维更简单!龙蜥社区系统运维 MeetUp 等你报名

为了让广大社区用户和开发者近距离感受 Linux 和 eBPF 技术的魅力&#xff0c;龙蜥社区系统运维于 08 月 12 日在杭州举行 MeetUp 。过去&#xff0c;系统运维 SIG 和大家一起交流了 eBPF 在安全和网络的最佳应用和实践&#xff0c;以及 Linux 在手机和服务器上的运维经验等技术…

深度学习训练营之CGAN生成手势图像

深度学习训练营之CGAN生成手势 原文链接CGAN简单介绍环境介绍前置工作数据导入所需的包加载数据创建数据集查看数据集 模型设置初始化模型的权重定义生成器构造判别器 模型训练定义损失函数设置超参数正式开始训练 结果可视化 原文链接 &#x1f368; 本文为&#x1f517;365天…

leetcode 763. 划分字母区间

2023.8.3 本题的关键是要确保同一字母需要在同一片段中&#xff0c;而这就需要关注到每个字母最后一次出现的位置。 思路&#xff1a;用一个哈希表保存每个字母&#xff08;26个&#xff09;最后一次出现的位置。然后从头遍历&#xff0c;不断更新最右边界&#xff0c;直到当前…

LLVM笔记1

参考&#xff1a;https://www.bilibili.com/video/BV1D84y1y73v/?share_sourcecopy_web&vd_sourcefc187607fc6ec6bbd2c74a3d0d7484cf 文章目录 零、入门名词解释1. Compiler & Interpreter2. AOT静态编译和JIT动态解释的编译方式3. Pass4. Intermediate Representatio…

Eureka增加账号密码认证登录

一、业务背景 注册中心Eureka在微服务开发中经常使用到&#xff0c;用来管理发布的微服务&#xff0c;供前端或者外部调用。但是如果放到生产环境&#xff0c;我们直接通过URL访问的话&#xff0c;这显然是不安全的。 所以需要给注册中心加上登录认证。 通过账号和密码认证进行…

openGauss学习笔记-30 openGauss 高级数据管理-别名

文章目录 openGauss学习笔记-30 openGauss 高级数据管理-别名30.1 语法格式30.1.1 列别名语法30.1.2 表别名语法 30.2 参数说明30.3 示例 openGauss学习笔记-30 openGauss 高级数据管理-别名 SQL可以重命名一张表或者一个字段的名称&#xff0c;这个名称为该表或该字段的别名。…

Spring:JDBCTemplate

JDBCTemplate 概述 概述 JDBC&#xff08;Java DataBase Connectivity&#xff0c;Java 数据库连接&#xff09;&#xff0c; 一 种用于执行 SQL 语句的 Java API&#xff08;Application Programming Interface &#xff0c; 应用程序设计接口 &#xff09;&#xff0c;可以为…

【每日一题】—— C. Mocha and Hiking(Codeforces Round 738 (Div. 2))

&#x1f30f;博客主页&#xff1a;PH_modest的博客主页 &#x1f6a9;当前专栏&#xff1a;每日一题 &#x1f48c;其他专栏&#xff1a; &#x1f534; 每日反刍 &#x1f7e1; C跬步积累 &#x1f7e2; C语言跬步积累 &#x1f308;座右铭&#xff1a;广积粮&#xff0c;缓称…

IO流【笔记】

1. IO概述 1.1 什么是IO 生活中&#xff0c;你肯定经历过这样的场景。当你编辑一个文本文件&#xff0c;忘记了ctrls &#xff0c;可能文件就白白编辑了。当你电脑上插入一个U盘&#xff0c;可以把一个视频&#xff0c;拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢&a…