我们如何在运行时通过用户选择在 c 中获取多个整数输入。 这里输入的第一行是测试用例的数量。在这种情况下,我将计算输入数字的总和。
测试用例:
输入
3
1 6 7
2 7 3 4
2 1
输出:
14
16
3
我们能否以这种方式修改 scanf() 以便它可以处理此动态输入。
我无法将行作为字符串输入,然后将它们拆分为数字。
可不可以像输入字符串一样用空格和\n来决定个数:scanf("%[^\n]",&str);
最佳答案
答案是由 BLUEPIXY 通过他漂亮的代码提供的。在这里,我们将输入视为一对。
要么是一对数字和空格,要么是一对数字和换行符。
示例:2 3 4
所以在这个输入中,我们采用成对的方式,例如 - '2'、'3
' 和 '4
\n
'。
当我们遇到 \n
时,我们会停止无限循环。代码如下:
#include <stdio.h>
int main(void){
int n;
scanf("%d", &n);
while(n--){
int v, sum = 0;
while(1){
char ch = 0;
scanf("%d%c", &v, &ch);
sum += v;
if(ch == '\n' || ch == 0)
break;
}
printf("%d\n", sum);
}
return 0;
}
输入:
3
1 6 7
2 7 3 4
2 1
输出:
14
16
3
关于c - 用户在运行时动态地进行多个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30125445/