栗子吃咸菜 发表于 2021-9-12 14:13:12

把每个整数的各个位数相加,程序找错我找不出来

下列程序的含义是在10个整数中,把每个整数的各个位数相加,例如:有整数1,12,23,34,45,56,67,78,80,90,各个位数相加为81(1+1+2+2+3+3+4+4+5+5+6+6+7+7+8+8+0+9+0),程序中有几处错误,请改正并调试程序。
找不出来,小白求答疑啊,是输入的问题吗
#include<stdio.h>
int main()
{
int x,sum,i;
for(i=0;i<10;i++)
{
    sum=0;
    scanf("%d",&x);
    while(x)
    {
      sum=sum+x%10;
      x=x/10;
    }
   }
printf("sum=%d\n",sum);
}   

咳咳咳咳o! 发表于 2021-9-12 15:03:50

#include<stdio.h>
int main()
{
int x,sum,i;

sum=0;

for(i=0;i<10;i++)
{
   
    scanf("%d",&x);
    while(x)
    {
      sum=sum+x%10;
      x=x/10;
    }
   }
printf("sum=%d\n",sum);

return 0;
}   

咳咳咳咳o! 发表于 2021-9-12 15:05:14

同学,sum = 0应放在循环之外。
代码末尾加return 0;
应该就好了。

大马强 发表于 2021-9-12 15:05:45

1.sum的定义放在了循环内,导致每次循环sum都被重新定义
2.题目只是需要个位相加,感觉这个while循环是多余的
#include<stdio.h>
int main()
{
int x,sum,i;
sum=0;
for(i=0;i<10;i++)
{
   
    scanf("%d",&x);
    sum=sum+x%10;
   }
printf("sum=%d\n",sum);
}

Mondayisgood 发表于 2021-9-12 16:24:08

2021年9月12日16:24:03
我 就 看看

咳咳咳咳o! 发表于 2021-9-12 16:35:24

大马强 发表于 2021-9-12 15:05
1.sum的定义放在了循环内,导致每次循环sum都被重新定义
2.题目只是需要个位相加,感觉这个while循环是多 ...

同学,是各个位数哦,不是个位{:10_334:}

大马强 发表于 2021-9-12 16:36:52

咳咳咳咳o! 发表于 2021-9-12 16:35
同学,是各个位数哦,不是个位

打扰了,没看到{:10_266:}

quark 发表于 2021-9-12 21:10:20

#include<stdio.h>
int main()
{
int x,sum=0,i;
for(i=0;i<10;i++)
{
    scanf("%d",&x);
    while(x)
    {
      sum +=x%10;
      x /=10;
    }
   }
printf("sum=%d\n",sum);
}   
页: [1]
查看完整版本: 把每个整数的各个位数相加,程序找错我找不出来