2 qq 31214517 qq_31214517 于 2016.03.24 17:56 提问

rookie又来了,还是c++问题

附上代码正文,问什么我输入了一个16进制的数后什么反应都没有,求解!!!

#include
#include
#include
using namespace std;
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");
}

3个回答

caozhy
caozhy   Ds   Rxr 2016.03.24 18:14
已采纳

到底是谁转谁?输入123,你怎么知道这是十进制还是十六进制。

caozhy
caozhy 回复qq_31214517: 没办法,除非人告诉它。你应该首先请人输入,输入1表示10进制,2表示16进制。
一年多之前 回复
qq_31214517
qq_31214517 对哦,我这个判断问题确实是挺大的,那要怎么判断输入的是10进制还是16进制呢?
一年多之前 回复
caozhy
caozhy   Ds   Rxr 2016.03.24 18:17


for (i = 0; i < 10; i++)
    if ((a[i] >= 'A'&&a[i] <= 'Z') || (a[i] >= 'a'&&a[i] <= 'z'))
        j = 1;
    else
        j = 0;
这里判断十六进制?能这么判断么?

default:
break;

这个直接返回,能有输出么?

qq_31214517
qq_31214517 如果j=0的话不就运行default后的语句吗,还是有输出的啊,怎么会直接跳出呢?
一年多之前 回复
qq_31214517
qq_31214517   2016.03.24 17:58

补充:程序目的就是一个输入10进制数转化16进制输出,输入16进制数转化为10进制数

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!