马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
大家好,我用的win7的64位系统,编译器用的vc++6.0,今天我写了个10进制转16进制的小程序,但不知为啥有乱码,将代码换到xp系统的vc++6.0也不行,应该不是编译器问题,贴出源码。
#include <stdio.h>
void main()
{
int i,a,b;
char d[16]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
char c[7];
printf("please input a number:\n");
scanf("%d",&a);
for(b=0;a;b++)
{
c[b]=d[a%16];
a/=16;
}
for(i=b;i>=0;i--)
{
printf("%c",c[i]);
}
}
但是程序换成这样就可以了:
#include <stdio.h>
void main()
{
int i,a,b;
char d[16]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
char c[7];
printf("please input a number:\n");
scanf("%d",&a);
for(b=-1;a;)
{
b++;
c[b]=d[a%16];
a/=16;
}
for(i=b;i>=0;i--)
{
printf("%c",c[i]);
}
}
我输入的是20,第一个图结果是?4,第二个图是14
|