问题是当我在 begin 中输入一个带有“sum”的字符串,然后计算以下数字时。
输入:
sum 10 20
输出:
30
但是我的代码是错误的,输出是33(处理的是11+22=33) 我认为第二个while循环有错误,但我不知道如何修改。
我需要高手的帮助。
#include<stdio.h>
int main(){
char a[100];
while (gets(a))
{
if (a[0] == 's'&&a[1] == 'u'&&a[2] == 'm')
{
int i;
int sum = 0;
for (i = 2; a[i]; i++){
if (a[i] == ' '){
i++;
int num = 0;
while (1){
num += num * 10 + (a[i] - '0');
i++;
if (a[i] == ' ' || a[i]=='\0') break;
}
sum += num;
i--;
}
}
printf("%d", sum);
}
}
return 0;
}
最佳答案
num += num * 10 + (a[i] - '0');
应该是
num = num * 10 + (a[i] - '0');
关于c - C中的字符串问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27384911/