自律使你自由!
C语言免费动漫教程,和我一起打卡! 《光天化日学C语言》
LeetCode 太难?先看简单题! 《C语言入门100例》
数据结构难?不存在的! 《画解数据结构》
闭关刷 LeetCode,剑指大厂Offer! 《算法入门指引》
LeetCode 太简单?算法学起来! 《夜深人静写算法》
本文将介绍这套试题的最基础的四种输入方式,题目都是围绕 a + b a + b a+b 进行展开。是适合C语言初学者做的 第一套题,解题过程我会写的非常详细。如果理解不了,可以评论:“教练,我想学C语言!” 让我看到你,或者私信我一对一辅导!
这个系列的题目都会以三部分进行呈现,分别是【题目描述】【解题思路】【代码详解】。
【例题1】输入两个正整数 a a a 和 b b b,输出 a + b a + b a+b 的值。 其中 a , b ≤ 10000 a, b \le 10000 a,b≤10000。
难度:⚪⚪⚪⚪
#include // (1)
int main() {
// (2)
int a, b; // (3)
scanf("%d %d", &a, &b); // (4)
printf("%d\n", a + b); // (5)
return 0; // (6)
}
#include
是包含头文件的语法,stdio.h
是输入输出相关的头文件,所有的 scanf
和输出函数printf
都必须包含这个头文件;main
函数是所有程序执行的入口,程序会检测到这个入口函数,然后开始往下执行;a
和b
;a
和b
;a+b
的结果输出到终端(屏幕)上;return 0;
是main
函数的返回值语句,返回以后程序就结束了;【例题2】先输入一个 t ( t ≤ 100 ) t (t \le 100) t(t≤100),然后输入 t t t 组数据。对于每组数据,输入两个整数 a a a 和 b b b,输出 a + b a + b a+b 的值。其中 a , b ≤ 10000 a, b \le 10000 a,b≤10000。
难度:⚪⚪⚪⚪
#include
int main() {
int a, b, t;
scanf("%d", &t); // (1)
while (t--) {
// (2)
scanf("%d %d", &a, &b);
printf("%d\n", a + b);
}
return 0;
}
while(expr){ body }
是一个循环语句的结构,其中expr
表示的是表达式,而body
则代表循环的内容。这里expr
就是t--
了,我们可以这么理解,当 t = 0 t=0 t=0 时,这个表达式的值为 0,所以整个循环就会结束,循环体 body
的执行次数就是我们输入的那个 t t t。然后我们把循环体套用【例题1】就能满足我们的题意要求了。【例题3】循环输入,每输入两个正整数 a a a 和 b b b(其中 a , b ≤ 10000 a, b \le 10000 a,b≤10000),就输出 a + b a + b a+b 的值。 当没有任何输入时,结束程序。
难度:⚪⚪⚪⚪
scanf
,当这个函数返回EOF
时,就代表没有任何输入了。所以我们可以循环判断函数的返回值是否等于 EOF
。EOF
是一个宏,可以认为它的值就是整数 -1
。#define EOF -1
#include
int main() {
int a, b;
while(scanf("%d %d", &a, &b) != EOF) {
printf("%d\n", a + b);
}
return 0;
}
scanf("%d %d", &a, &b)
这个函数的返回值,当你从控制台输入两个数时,它会根据输入的格式正确与否,返回输入成功的数的个数,所以正常情况是返回 2 。EOF
,所以导致循环语句内的条件变成假,从而退出循环,退出循环以后就顺理成章的结束进程了,符合题意要求。【例题4】循环输入,每输入两个正整数 a a a 和 b b b(其中 a , b ≤ 10000 a, b \le 10000 a,b≤10000),就输出 a + b a + b a+b 的值。 当输入的 a a a 和 b b b 都等于零时,程序结束。
难度:⚪⚪⚪⚪
#include
int main() {
int a, b;
while (scanf("%d %d", &a, &b) != EOF) {
if(a == 0 && b == 0) // (1)
break;
printf("%d\n", a + b);
}
return 0;
}
a==0 && b==0
,然后套上 if
语句和break;
语句就能够实现这个功能了。#include
int main() {
int a, b;
while (scanf("%d %d", &a, &b) && (a || b) ) {
// (1)
printf("%d\n", a + b);
}
return 0;
}
!(a==0 && b==0)
;(a != 0 || b != 0)
,又表达式expr != 0
和expr
是等价的,所以这个条件又可以表示成(a||b)
,也就有了这种写法。自律使你自由!
C语言免费动漫教程,和我一起打卡! 《光天化日学C语言》
LeetCode 太难?先看简单题! 《C语言入门100例》
数据结构难?不存在的! 《画解数据结构》
闭关刷 LeetCode,剑指大厂Offer! 《算法入门指引》
LeetCode 太简单?算法学起来! 《夜深人静写算法》