发布网友
共3个回答
热心网友
#include <stdio.h>
int main()
{
int count = 0;// 记录输入了多少个数
int num = 0;// 记录当前输入的数字
int sum = 0;// 记录之前输入的数的和
char input;// 记录当前读入的字符
while ((input = getc(stdin)) != '\n')// 从控制台读入一个字符,如果这个字符是回车。就跳出循环
{
// 如果输入是空格,就认为输入了下一个数字
if (input == ' ')
{
++count;
sum += num;
num = 0;
}
// 这个就是把分开读入的1 , 2 拼成12做的算法。 input需要减去'0'是因为input存储的是字符1,不是数字1.字符1是以ASC码存储的。需要转换成数字
else
{
num = num * 10 + (input - '0');
}
}
// 回车之前有个数字需要加进去
++count;
sum += num;
printf("当前输入了%d个数字,和为%d", count, sum);
return 0;
}
求加分
热心网友
用空格分隔,然后转为整数再累加就行了啊。分割字符串有很多方法,比如boost里面的tokenize就很好用。
热心网友
创建一个结束输入循环条件比如说Enter键