【c语言求改错】编制程序用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意位数的整数。 (我做的程序输入483,运行结果为384,不会调整顺序,求帮忙。。)
第1个回答 推荐于2016-07-21
void f(x)
{
if(x!=0)
f(x/10)
else
return
char c = x%10 + 48
printf("%c", c)
}追问
{
if(x!=0)
f(x/10)
else
return
char c = x%10 + 48
printf("%c", c)
}追问
大神,输入123,运行结果为0123,怎么把那个0去掉。。
追答还是采用字符串保存,然后逆序吧
追问不会。。。因为字符串定义需要定义长度。题目中要求n为任意位数,不能规定长度。。。
追答那我只能说呵呵了,你用int最大十几位数字,所以不存在字符串接受不了,定义1000大小的字符串已经顶天了,你能说int能接受100位的数字吗?所以要么是问题本身没有考虑,有么就是不用这么考虑
追问→_→你太不理解学渣的痛苦了,来段源代码堵住我的嘴。。
本回答被提问者和网友采纳第2个回答 2018-12-20
#include<stdio.h>
void invert(int a){
if(a==0) return;
invert(a/10);
int n;
n=a%10;
printf("%2d",n);
}
void main(){
int a;
scanf("%d",&a);
invert(a);
}
void invert(int a){
if(a==0) return;
invert(a/10);
int n;
n=a%10;
printf("%2d",n);
}
void main(){
int a;
scanf("%d",&a);
invert(a);
}