include <stdio.h>void main(){ int num; int count=0; scanf("%d",&num); while(num!=0) { printf("%d ", num%10); //提出当前个位 num=num/10; count++; //累加位数 } printf("\n%d\n",count);} ...
假设x为INPUT的数 a[100]用来存放各个数位(0用来存放一共有几位,1用来存放个位,,依次)i=0;{a[++i]=x % 10;x/=10;}while (x);a[0]=i;
如果简单点就int i=123;int k,s;k=i%10;个位数s=(i-100)/10;十位数i=i/100;//百位数 include <stdio.h> void main(){ int a;int b,c,d;//各个位数上的数字 printf("请输入一个三位数:");scanf("%d",&a);b=a/100;//百位 c=(a-b*100)/10;//十位 d=a%10;//个位 p...
这个蛮简单的呀,假如是个五位数哈:x为要提取的那个数, wy,wq,wb,ws,wg分别表示万位,千位,百位,十位,个位。wy=x/10000;wq=(x-wy*10000)/1000;wb=(x-wy*10000-wq*1000)/100;ws=(x-wy*10000-wq*1000-wb*100)/10;wg=x-wy*10000-wq*1000-wb*100-ws*10;...
digit=*(pstr+i-1)-48; /*将个数位赋予digit */ k=1; while(k<j) /*将含有两位以上数的其他位的数值累计于digit */ { e10=1; for(m=1;m<=k;m++) e10=e10*10; /*e10代表该位数所应乘的因子*/ digit=digit+(*(pstr+i-1-k)-48)*e10; /*将该位数的数值累加于digit*/ ...
include<stdio.h> void main() { int indiv,ten,hundred,num; printf("enter a 三位数:\n"); scanf("%d",&num); hundred=num/100; ten=num/10%10; indiv=num%10; printf("�0�0�0�2�0�2�0�3�...
//假定我们提取数位的数最大是个十位数。//这个是32位int的最大容量constintdigitCount=10;voidget...
c语言有个运算符号是%,就是求取两个数相除之后的余数。如果x%10的运算就是求取x的十进制个位数,利用这点可以提取数位,只是提取的顺序是反向的,是从最低位到最高位顺序: #includestdio.h void main() { int x; scanf("%d",x); while ( x ) { printf("%d ",x%10); x/=10; } printf("\n"...
【解析】此方法是将100到999所有的三位正整数一一考察,即将每一个三位正整数的个位数、十位数、百位数一一求出(各数位上的数字的提取算法见下面的“数字处理”),算出三者的立方和,一旦与原数相等就输出。共考虑了900个三位正整数。 [法二] main() ...
include<stdio.h> int main(){ int n,a[11],k=0;scanf("%d",&n);while(n!=0){ a[k++]=n%10;//将各个为上的数提取出来,a[0]是个位,以此类推;n/=10;} for(int i=0;i<k;i++)//逆序输出;{ printf("%d",a[i]);} return 0;} 十位以下都可以 ...