如何获得所需的输出?

时间:2019-10-06 20:07:37

标签: c

我尝试对测试用例使用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

第一个输出是正确的,但是在第二次打印时,它会将第一个结果与我不需要的第二行相加。

1 个答案:

答案 0 :(得分:0)

在处理123之后,您永远不会清除总和。您正在计算正确的总和(15),但是将其添加到上一步(6)的总和中。要解决此问题,请在for循环内清除总和。

for(i=1;i<=test;i++)
   {
     sum = 0;
     printf("\n");