我尝试对测试用例使用for循环,因为我认为这会带来所需的输出,但没有成功
int main()
{
int num, temp, digit, sum = 0;
int test,i;
scanf("%d",&test);
for(i=1;i<=test;i++)
{
printf("\n");
scanf("%d", &num);
temp = num;
while (num != 0)
{
digit = num % 10;
sum = sum + digit;
num /= 10;
}
printf("%d",sum);
}
return 0;
}
预期结果-2123456 输出-6 15
获得的结果-2123456 产出-6 21
第一个输出是正确的,但是在第二次打印时,它会将第一个结果与我不需要的第二行相加。
答案 0 :(得分:0)
在处理123之后,您永远不会清除总和。您正在计算正确的总和(15),但是将其添加到上一步(6)的总和中。要解决此问题,请在for循环内清除总和。
for(i=1;i<=test;i++)
{
sum = 0;
printf("\n");