求答案(C语言)

将一个十进制整数N(unsignedlong)的一个数位拆开显示(每个数字中间用空格隔开)。例如N=123456,输出必须是:123456分拆整数N必须单独写成函数,ma... 将一个十进制整数N(unsigned long)的一个数位拆开显示(每个数字中间用空格隔开)。例如N=123456,输出必须是: 1 2 3 4 5 6
分拆整数N必须单独写成函数,main函数负责输入N,并调用上述函数;分拆函数必须提供两个版本(一个递归,一个非递归),所有结果输出都在分拆函数中完成。
展开
 我来答
百度网友906779cfc
2012-05-28 · TA获得超过521个赞
知道小有建树答主
回答量:363
采纳率:0%
帮助的人:431万
展开全部
非递归
void fun(unsigned long n)
{
int a[64] = {0};
int len = 0,i;
do{
a[len] = n % 10;
n /= 10;
len++;
}while(n > 0);
for(i = len - 1; i >= 0 ; i--)
{
printf("%d ",a[i]);
}
}

递归:
void fun(unsigned long n)
{
if(n < 10)
{
printf("%d", n);
return;
}
else
{
unsigned long m = 1;
while(n > m * 10)
{
if(m < m*10) //当n值与unsigned long 最大值的位数一样的时候,m就会比m*10大
m *= 10;
else
break;
}

printf("%d ",n / m);
fun(n % m);
}
}
k79424275
2012-05-28
知道答主
回答量:77
采纳率:0%
帮助的人:24.2万
展开全部
char *itoa(int value, char *string, int radix);
用这个函数itoa,这个问题就简单了
变成字符串后,可以对字符串处理加空格
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式