while循环求一个数各各位上的和?

来源:百度知道 编辑:UC知道 时间:2024/06/24 23:26:58
例如:输入一个不超过32767的正整数(可以是1到5位),用while形式的循环来计算该整数的各位数字之和并输出结果。例如整型数3456的各位数字之和是3+4+5+6,等于18。输出结果的形式为:“3456:3+4+5+6=18”

我是用IF作的好用
#include<stdio.h>
main()
{
short a,g,s,b,q,w,sum;
printf("input a(a<32767)\n");
scanf("%d",&a);
if(a<32767)
{

w=a/10000;
q=(a%10000)/1000;
b=(a%1000)/100;
s=(a%100)/10;
g=a%10;
sum=w+q+b+s+g;
}
printf("%d:%d+%d+%d+%d+%d=%d\n",a,w,q,b,s,g,sum);
}

sum=0;
while (a>0)
{
sum+=a%10;
a/=10;
}

原程序的一个while版本:

//---------------------------------------------------------------------------

#include <stdio.h>

int main(void)
{
int a,sum;
scanf("%d",&a);
sum=0;
printf("%d:",a);
while (a>0)
{
printf("%d",a%10);
sum+=a%10;
if (a>=10) putchar('+');
a/=10;

}
printf("=%d\n",sum);
return 0;
}
//---------------------------------------------------------------------------

//
#include <stdio.h>
void main()
{
int Num;
int a[5]={0};
int sum=0;
int i=0;
printf("input Numbers(a<32767):");
scanf("%d",&Num);
printf("%d:",Num);
while(Num>0)
{
a[i]=Num%10;
Num=int(Num/10);
sum+=a[i];