c语言一个数分解成独立的数字

知道一个数字,可能是1至四位数,将其分解后放到num数组里。
帮我写个函数
如1234:1,2,3,4
10:0,0,1,0
最新回答
满载树色的飞车

2024-12-02 02:27:01

#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]);
}
简单修改了一下
何必讨好

2024-12-02 07:03:03

这个算法我想了很久不知道怎么用语言表达,举个例子吧:
对于15698,
首先,确定最高位,是万位,所以万位上的数字就是15698/10000=1;
下一位,千位15698/1000%10=5;
在下一位,百位15698/100%10=6;
十位,15698/10%10=9;
最后,个位15698/10.
最高位用最高为对应的单位“1”去除,个位用10去除,其他位先把欲求位变成个位,对10求余。
拿着试卷唱忐忑

2024-12-02 04:18:12

下面有两个函数 一个是用数字存储 一个是用字符存储 不知你要哪一个 我都写了
还有 只能够转换非负数

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];
}
语楪ゝ淡蓝

2024-12-02 02:16:10

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

#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;
}
//---------------------------------------------------------------------------