看在那么多人都有疑问,我写下吧,
首先个位,直接拿数模上10就好,再除以1,随便几位的数,得3,
百位.先模上100,再除以10,得7,
千位,先模上1000,再除以100,得1,
万位,直接除以10000,OK了~得5,当然了,要设为int型~
#include<stdio.h>
void main()
{ int num,i,j=10,k=1,sum=0,a;
scanf("%d",&num);
for(i=0;i<4;i++)
{ a=num%j;
a=a/k;
j*=10;
k*=10;
sum=sum+a;
}
printf("the sum is %d ",sum);
getch();
}
也可以修改一下,随便多少位的数也可以,不过要加上先判断数的位数的功能~
#include<stdio.h>
void main()
{ int num,i,j=10,k=1,sum=0,a,bit=1;//bit为数的位数
scanf("%d",&num);
a=num;
while((a=a/10)!=0)
bit++;
for(i=0;i<bit;i++)
{ a=num%j;
a=a/k;
j*=10;
k*=10;
sum=sum+a;
}
printf("the sum is %d ",sum);
getch();
}
这样,随便多少位都可以了,只要在int 范围内...也可以改成long,那样就更大了~
[此贴子已经被作者于2007-4-23 18:16:38编辑过]