鱼C论坛

 找回密码
 立即注册
查看: 586|回复: 7

[已解决]把每个整数的各个位数相加,程序找错我找不出来

[复制链接]
发表于 2021-9-12 14:13:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
下列程序的含义是在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);
}   
最佳答案
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;
}   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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;
}   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-12 15:05:14 | 显示全部楼层
同学,sum = 0应放在循环之外。
代码末尾加return 0;
应该就好了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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);
}  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-12 16:24:08 | 显示全部楼层
2021年9月12日16:24:03
我 就 看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

同学,是各个位数哦,不是个位
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-12 16:36:52 | 显示全部楼层
咳咳咳咳o! 发表于 2021-9-12 16:35
同学,是各个位数哦,不是个位

打扰了,没看到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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);
}   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 06:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表