solr 6.3中文版 pdf:vc++编程问题,请查错,急急 急急急

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 04:17:27
//十进制转十六进制
#include <iostream.h>
int main()
{
int a,b,c=0,d;char chen[16]="123456789ABCDE";char xu[50];
cout<<"please input your number"<<endl;
cin>>a;
while(a!=0)
{
b=a%16;
a=a/16;
xu[c]=chen[b];
c++;
}
for(d=c-1;d>=0;d--)
cout<<xu[c];
return 0;
}
请帮忙检查一下错误,谢谢啊,急急急急

楼主的程序有几处错误,我改了一下

#include <iostream.h>
int main()
{
int a,b,c=0,d;char chen[17]="0123456789ABCDEF";char xu[50];
cout<<"please input your number"<<endl;
cin>>a;
if (a==0)
xu[c++]='0';
while(a!=0)
{
b=a%16;
a=a/16;
xu[c]=chen[b];
c++;
}

for(d=c-1;d>=0;d--)

cout<<xu[d];
return 0;
}

第1,chen[]数组中少了0和F,应该加上;
第2,少考虑了0这个数的特殊情况,当为0时,转换为16进制值为多少,虽简单,但我觉得不能少,不然不完整;
第3,就是cout<<xu[d],不应该是cout<<xu[c].

cout<<xu[d];

在return上一行加上cout<<endl;看上去更好`