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个回答

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

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复qq_31214517: 没办法,除非人告诉它。你应该首先请人输入,输入1表示10进制,2表示16进制。
大约 4 年之前 回复
qq_31214517
qq_31214517 对哦,我这个判断问题确实是挺大的,那要怎么判断输入的是10进制还是16进制呢?
大约 4 年之前 回复

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



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后的语句吗,还是有输出的啊,怎么会直接跳出呢?
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐