首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

【各位数之和,为什么会错?】,该如何处理

2013-12-13 
【各位数之和,为什么会错?】#includestdio.h int main() {int n,m,i,k,sum,a[100] while(scanf(%d,&n)!

【各位数之和,为什么会错?】
#include<stdio.h>
 int main()
 {     
 int n,m,i,k,sum,a[100];
 while(scanf("%d",&n)!=EOF)
{
 if(n==0)
 break;
    m=n;
     while(n!=0)
{
 n=n/10;
 i++;
}
       for(k=0;k<i;k++)
 {
    sum=0;
    a[k]=m%10;
    m=m/10;
     sum=sum+a[k];
  }
    printf("%d\n",sum);
 } 

 
 return 0; 
 }
[解决办法]
i没有初始化
[解决办法]


  sum =0 ;  //sum放这里来,不然每次都清空了
  for(k=0;k<i;k++)
 {
//    sum=0;
    a[k]=m%10;
    m=m/10;
      sum=sum+a[k];
  }

[解决办法]

#include<stdio.h>
 int main()
 {     
 int n,m,i,k,sum,a[100];
i=0;
 while(scanf("%d",&n)!=EOF)
{
 if(n==0)
 break;
    m=n;
     while(n!=0)
{
 n=n/10;
 i++;
}
sum=0;
       for(k=0;k<i;k++)
 {
    a[k]=m%10;
    m=m/10;
     sum=sum+a[k];
  }
    printf("%d\n",sum);
 } 

 
 return 0; 
 }


引用:
#include<stdio.h>
 int main()
 {     
 int n,m,i,k,sum,a[100];
 while(scanf("%d",&n)!=EOF)
{
 if(n==0)
 break;
    m=n;
     while(n!=0)
{
 n=n/10;
 i++;
}
       for(k=0;k<i;k++)
 {
    sum=0;
    a[k]=m%10;
    m=m/10;
     sum=sum+a[k];
  }
    printf("%d\n",sum);
 } 

 
 return 0; 
 }

热点排行