用C++编写一个递归函数将一个整数n转换成相应的字符串
#include<iostream>usingnamespacestd;intmain(){inta;cin>>a;intzhishu(int);charf(int);f...
#include<iostream>
using namespace std;
int main()
{int a;
cin>>a;
int zhishu(int);
char f(int);
f(a);
cout<<'\n';
return 0;
}
int zhishu(int n)
{if(n)
{n-=1;
return 10*zhishu(n);}
if(n==0)
return 1;
}
char f(int n)
{int p=0;
while(n)
{n=n/10;
p++;}
cout<<char(n/zhishu(p-1)+48);
n=n-(n/zhishu(p-1))*zhishu(p-1);
if(n)
return f(n);
我输出的是0,为什么,哪里错了,怎么改啊 展开
using namespace std;
int main()
{int a;
cin>>a;
int zhishu(int);
char f(int);
f(a);
cout<<'\n';
return 0;
}
int zhishu(int n)
{if(n)
{n-=1;
return 10*zhishu(n);}
if(n==0)
return 1;
}
char f(int n)
{int p=0;
while(n)
{n=n/10;
p++;}
cout<<char(n/zhishu(p-1)+48);
n=n-(n/zhishu(p-1))*zhishu(p-1);
if(n)
return f(n);
我输出的是0,为什么,哪里错了,怎么改啊 展开
2个回答
展开全部
zhishu这个函数没什么意义啊
char f(int n )
{
int m=n/10;
char c= n%10 + '0';
if(m)
cout<<f(n/10)<<c;
else
return(c);
}
更多追问追答
追问
其实zhishu的意思是10的多少次方,我的意思是比如345就%10的平方,就是zhishu(2),
不对啊,我输入345,
输出的是34p5,你可以运行试一下
追答
给你个完整的程序:
#include <iostream>
using namespace std;
void f(int n );
int main() {
int n;
cin>>n;
f(n);
return 0;
}
void f(int n)
{
int m=n/10;
char c= n%10 + '0';
if(m)
{ f(m); cout<<c;}
else
cout<<(c);
}
展开全部
将一个整数n转换成相应的字符串
题目是什么意思?
举个例子,方便检查程序
题目是什么意思?
举个例子,方便检查程序
更多追问追答
追问
就是比如一个int a=345;
变成char a="345";
追答
#include
#include
using namespace std;
int main()
{
int a;
cin>>a;
char s[20];
sprintf(s, "%d", a );
cout << s <<endl ;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询