怎麼求一個數是幾位數並求每一位上的數的和。
然後把每一位上的數求和。
如我輸入45678,
輸出:5 和為:30
輸入:456,
輸出:3 和為:15
謝謝。。
我是菜鳥,麻煩寫一下注解。
再次謝謝。
[此贴子已经被作者于2006-4-1 12:15:44编辑过]
int Bit(int a) /*求一个数a是几位数*/
{int i=0;
while(a!=0)
{a/=10;i++;}
return i;
}
void Gws(int a,int *p,int i) /*求一个数a的各位上的数。xx指向一个数组,i是这个数的位数。*/
{int j;
for(j=0;j<i;j++)
{*(p+j)=a%10;a=a/10;}
}
main()
{int i,n,num,sum=0,*s;
printf("Enter the number:\n");
scanf("%d",&n);
num=Bit(n);
printf("The bits is %d\n",num);
s=(int*)malloc(num*(sizeof(i))); /*分配一个空间存储各位数*/
Gws(n,s,num);
for(i=0;i<num;i++)
{sum=sum+*(s+i); printf("%d\n",*(s+i));}
printf("The sum is %d\n",sum);
}
已经运行过了,自己再想想。