一个很简单的C++程序

来源:百度知道 编辑:UC知道 时间:2024/05/12 06:05:53
用递归的方法将一个整数N转换成字符串!
#include<iostream.h>
void convert(int n)
{
int i;
cout<<(char)(n%10+'0');
if((i=n/10)!=0) convert(i);
}
void main()
{
int nNum;
cout<<"请输入一个整数:";
cin>>nNum;
cout<<"输入的是:";
if(nNum<0)
{
cout<<'-'; nNum=-nNum;
}
convert(nNum);
cout<<endl;
}
如果需要convert()函数具有返回值且有“回归”过程,则这样的函数应如何实现!

另一个问题:比如说输入的是1234,则输出的结果是“4321”,怎样改动下原程序使结果变成“1234”
主要问题是如果需要convert()函数具有返回值且有“回归”过程,则这样的函数应如何实现!
能不能帮忙解答一下!

既然说是用递归那就递归好了,其实只要你明白递归的原理改这个非常简单:
#include<iostream.h>
void convert(int n)
{
int i;

if((i=n/10)!=0) convert(i);
cout<<(char)(n%10+'0');//上下两句一换,调用的次序就反了
}

void main()
{
int nNum;
cout<<"请输入一个整数:";
cin>>nNum;
cout<<"输入的是:";
if(nNum<0)
{
cout<<'-'; nNum=-nNum;
}
convert(nNum);
cout<<endl;
}

是为了写算法还是为了转换
只是为了转换的话用 extern char *itoa(int i);函数就行了
buf = itoa(nNum);
为了算法的话,可以先把转换得到的字符存到字符串里,最后对字符串进行反转就简单多了。

#include <iostream>
using namespace std;

void convert(int n, char* p)
{
int i;
*p =(char)(n%10+'0');
if ((i=n/10)!=0 )
convert(i, ++p);
else
*(++p) = '\0';
}

int main()
{
int nNum;
cin>>nNum;

char buf[256];