#include <stdio.h>main(){ int a; scanf("%d",&a); do { printf("%d,",a%10); } while(a/=10);}过去做的一道作业,貌似差不多,没放到数组里而已。 #include <stdio.h>main(){ int a; int num[4]={0}; int n=3; scanf("%d",&a); do { num[n]=a%10; n--; } while(a/=10); for(n=0;n<4;n++) printf("%d,",num[n]);}简单修改了一下
这个算法我想了很久不知道怎么用语言表达,举个例子吧:对于15698,首先,确定最高位,是万位,所以万位上的数字就是15698/10000=1;下一位,千位15698/1000%10=5;在下一位,百位15698/100%10=6;十位,15698/10%10=9;最后,个位15698/10.最高位用最高为对应的单位“1”去除,个位用10去除,其他位先把欲求位变成个位,对10求余。
下面有两个函数 一个是用数字存储 一个是用字符存储 不知你要哪一个 我都写了还有 只能够转换非负数void convert(int dec,char num[])//传入你要转换的数字 以及存储的数组首地址 { int i=0; memset(num,0,sizeof(num));//数组清零 if(!dec)//判断非0 { num[0]='0'; return; } while(dec) { num[i++]=(dec%10)+'0';//使用字符存储 dec/=10; } strrev(num);//逆序 这个函数需要使用string.h头文件 linux下这个函数不能使用 自己写一个就可以了}void convert(int dec,char num[])//传入你要转换的数字 以及存储的数组首地址 { int i=0,tot; char tmp[5]={0}; memset(num,-1,sizeof(num));//数组清零 if(!dec)//判断非0 { num[0]=0; return; } while(dec) { tmp[i++]=dec%10;//使用数字存储 dec/=10; } tot=i-1; for(i=0;i<=tot;++i)//逆序存储 num[i]=tmp[tot-i];}
//---------------------------------------------------------------------------#include <stdio.h>int main(void){ int dig[4]={0}; int a,i=3; scanf("%4d",&a); while (a) { dig[i--]=a%10; a/=10; } for (i = 0; i<4; i++) { printf("%d%c",dig[i],i<3?',':'\n'); } return 0;}//---------------------------------------------------------------------------