C语言中如何将一个数字的各个位上的数分别提取?

C语言中如何将一个未定的多位数字的各个位上的数字单独提取出来呢?能否给出具体的语句?(以 Visual C 6.0 为平台) 谢谢!!!

我来拿分了。假设输入5位数。
#include <stdio.h>

int main()
{
int a,b1,b2,b3,b4,b5;
scanf("%d",&a);
d1=(int)a/10000;
d2=(int)(a-d1*10000)/1000;
d3=(int)(a-d1*10000-d2*1000)/100;
d4=(int)(a-d1*10000-d2*1000)/10;
d5=(int)a-d1*10000-d2*1000-d3*100;
printf("万位为:%d\n千位为:%d\n百位为:%d\n个位为:%d\n",d1,d2,d3,d4,d5);
return 0;
}
以上。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-29
#include "stdio.h"
int main()
{ int t,n;
t=12345;
while(t)
{ n=t%10; //从t的个位依次提取
t=t/10;
....
}

}
第2个回答  2012-11-23
char a[50];
int m; //你的数字 比如123456789
int index; //你要读取的位置 比如个位 1
int n; //读取之后的数值
sprintf(a, "%d", m);
n = a[index - 1] - '0';

应该是可以的本回答被网友采纳
第3个回答  2012-11-23
数字:n

m=n;
int a[];
int i=0;
int j=1;// 计数
while(m>10)
{a[i]=m%10;
m=m/10;
i++;
j++;
}

最高位是 m 其他的是在a[]中

n=m*(j个10)+a[j-1]*(j-1个10)+......a[1]*10+a[0]
第4个回答  2012-11-23
define NUM 10
int m//
int a[NUM];
int i = 0;
while(m>=10)
{
a[i++]= m%10;
m /= 10;
}
a[i] = m;
相似回答