#include
int main()
{ int repeat,i,num=0,sum=0,j;
char c[999];
scanf("%d",&repeat);
getchar();
gets(c);
for(j=0;repeat>0;j++)
{if(c[j]>='0'&&c[j]<='9')
{num++;
sum=sum+(c[j]-'0');
}
if(c[j]==' '||c[j]=='\0')
{printf("number=%d,sum=%d.\n",num,sum);
repeat--;
num=0;sum=0;
}
}
return 0;
}
输入一个正整数 repeat (0
Sample Input
3
123456 20000 -1
Sample Output
number=6,sum=21.
number=5,sum=2.
number=1,sum=1.
测了好多次,代码好像没啥问题。
本来还考虑到答题系统会把stdin重定向到文件,可能会导致
scanf("%d",&repeat);
getchar();
gets(c);
中的getchar跳过的不是换行符,而是下面的有用字符。但是实际测试并没有影响,自己在Linux系统中重定向到文件读取试过了,结果依然正确
也许是还有我没考虑到的特殊情况