写在前面:
题解是对具体题目的编程实现,不会具体讲解C语言语法。请先大致学习好语法,自己敲敲代码后再看题解(上来就直接看题解的习惯不好哟~)。在每一题的题解之前,会列出本题涉及到的语法知识供参考,可以在教材或其他学习资源找到这些内容学习。😀
本题的预备知识:
- 变量的定义与赋值操作
- 输入(scanf)输出(printf)语句
- 条件语句(if)
- 运算符:>、<、三目运算符等
整数比大小
成绩 | 5 | 开启时间 | 2020年03月15日 星期日 08:00 |
折扣 | 0.8 | 折扣时间 | 2020年03月28日 星期六 23:55 |
允许迟交 | 否 | 关闭时间 | 2020年03月30日 星期一 23:55 |
小明上了小学一年级,老师开始教他认识两个数哪个大,哪个小。计算机要学会这个可以使用 if 语句,也可以使用三目运算 ? 。
输入:两个整型数
输出:两个整型值中的最小值
| 测试输入 | 期待的输出 | 时间限制 | 内存限制 | 额外进程 |
测试用例 1 |
|
| 1秒 | 64M | 0 |
测试用例 2 |
|
| 1秒 | 64M | 0 |
测试用例 3 |
|
| 1秒 | 64M | 0 |
解法1:使用if条件语句
#include <stdio.h> //导入stdio.h库,里面包含输入输出函数
int main() {
int a, b; //定义两个int(整数)型变量
scanf("%d %d", &a, &b); //将输入的两个整数分别存入变量a、b中
if (a < b)//如果a比b小
printf("min=%d\n", a); //输出
else //否则
printf("min=%d\n", b); //输出b
}解法2:使用三目运算符
#include <stdio.h>
int main() {
int a, b; //定义两个int(整数)型变量
scanf("%d %d", &a, &b); //将输入的两个数存入变量a、b中
int ans; //用于存储最小值
ans = a < b ? a : b;
printf("min=%d\n", ans); //输出ans
}注意对这一条语句:ans = a < b ? a : b 的理解:当 a < b 条件成立时,将第一个元素(符号 ':' 前)a 赋值给ans,否则,将第二个元素(符号 ':' 后)b 赋值给ans。
总结
易错点:
- 输入/输出变量时,要将输入格式与对应变量的格式匹配好。比如说,本题输入两个%d(整型格式),对应变量a、b也是整型的变量
- scanf 内对应的变量应该使用取址符号 '&'
- 根据题目输出的要求,输出结果最后要加上换行符,即\n。
















