【各位数之和,为什么会错?】,该如何处理
【各位数之和,为什么会错?】
#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没有初始化
------解决方案--------------------
------解决方案--------------------
#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;
}