我需要读取一个未知数量的行,每一行包含一个未知数量的整数,这个数字每行不同。
整数之间用一个空格隔开,行尾没有空格。
输出是所有整数的和。
为例输入:
5
2 2
4 4 4
6 6
3 3
输出:39
数字在几行中输入的事实实际上是无关的。基本上,您只需将用户输入的数字相加,直到输入流结束。
你可能想要这样的东西:
#include <stdio.h>
int main() {
int sum = 0;
int number;
while (scanf("%d", &number) == 1)
{
sum += number;
}
printf("Sum of all numbers is %dn", sum);
}
与<<p>结束输入kbd> Ctrl +D。执行示例:
1 2 3
4 5
6 7
8
Sum of all numbers is 36
进入8
后按Ctrl+D
while (scanf("%d", &number) == 1)
说明
scanf
返回输入流结束时成功扫描的项数或EOF
。所以这里我们决定停止循环,如果scanf
返回的不是1(这意味着用户已经按下Ctrl+D触发EOF,或者输入了不是数字的东西(例如ABC
)。