- 论坛徽章:
- 0
|
很简单的一个小程序,可是执行的时候有段错误,我不明白问题出在哪里?
请大家帮忙看看,谢谢了!
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
const int BASE=16;
const char HEXA[BASE]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int saisir ()
{
int i;
cout <<"请输入一个0到10000之间的数. " <<endl;
do
{
cin >>i;
}
while ((i<0)||(i>10000));
return i;
}
void affiche (char *&chainee)
{
for (int i=0;i<strlen(chainee)-1;i++)
cout <<chainee;
}
void conversion (int nombre,char *&chainee)
{
int iIndice=0;
do
{
chainee[iIndice]=HEXA[nombre%BASE];
nombre/=BASE;
iIndice++;
}
while (nombre!=0);
chainee[iIndice]='\0';
}
void inverse (char *&chainee)
{
char *inverse;
int n=strlen(chainee);
inverse=new char[n];
for (int i=0;i<n-1;i++)
{
inverse[n-1-i]=chainee;
cout <<inverse[n-1-i];
}
inverse[n]='\0';
chainee=inverse;
delete[] inverse;
}
int main()
{
int nombre;
char *liste;
liste=new char[5];
nombre=saisir();
conversion(nombre,liste);
inverse(liste);
cout <<nombre <<"=" ;
affiche(liste);
cout <<endl;
delete[] liste;
return 0;
}
[ 本帖最后由 clwwy 于 2006-1-8 17:42 编辑 ] |
|