2 qq 31214517 qq_31214517 于 2016.03.24 18:11 提问

求大神帮帮忙,c++进制转换的问题
c++

求大神帮帮忙,目的是一个输入10进制数转化16进制输出,输入16进制数转化为10进制数,
调试时我输入了一个10进制数结果没有输出,附上代码

void main() {
char a[10];
cin >> a;
int i,j;
for (i = 0; i < 10; i++)
if ((a[i] >= 'A'&&a[i] <= 'Z') || (a[i] >= 'a'&&a[i] <= 'z'))
j = 1;
else
j = 0;
switch (j)
{
case 1:cout.setf(ios::hex);

{int a;
{int b = 0;
for (a = 0; a < 10; a++)
b = b + a;
cout << b << endl;
cout.unsetf(ios::hex);
break; }
}
default:
break; int c;
int d = 0;
for (c = 0; d < 10; c++)
d = d + c;
cout << d << endl;
break;
}
system("pause");
}

1个回答

caozhy
caozhy   Ds   Rxr 2016.03.24 18:19
已采纳

自己调试下就知道了,j=0,
default:
break;
直接跳出。
而且有字母的固然是16进制,但是没有字母的不能认为一定是10进制。

再说你的代码也不对,自己google下吧。这种代码没必要再重复写给你了。

qq_31214517
qq_31214517 我这个判断问题确实是挺大的,那要怎么判断输入的是10进制还是16进制呢?除了加个输入判断进制还有别的方法吗?还有如果j=0的话不就运行default后的语句吗,还是有输出的啊,怎么会直接跳出呢?
一年多之前 回复
qq_31214517
qq_31214517 好的,新手上路,还不太熟练哈哈哈,谢谢了
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片