c++ 十六进制转换十进制 程序出错

来源:百度知道 编辑:UC知道 时间:2024/05/31 11:06:21
仅需要3位数的十六进制转换十进制~~

算出来一个负值的定值……

求解

#include<iostream>
using namespace std;
int func(int x);
int convert(int decimal);
int main()
{
char first,second,third;
int a,b,c,decimal;
int x,y;
cout<<"put in a number"<<endl;
cin>>first>>second>>third;
do{
if(first>='0'&&first<='9'||first>='A'&&first<='F'||first>='a'&&first<='f'
&&second>='0'&&second<='9'||second>='A'&&second<='F'||second>='a'&&
second<='f'||third>='0'&&third<='9'||third>='A'&&third<='F'||third>=
'a'&&third<='f')
{first=convert(a);
second=convert(b);
third=convert(c);

这函数写的太差了
int convert(char fst, char snd, char trd)
{
int a,b,c;
a=func(fst);
b=func(snd);
c=func(trd);
y=c*1+b*16+a*16*16; /* 为什么要用cba的顺序?搞不懂 */
return y;
}

只能说你太懒了。。
百度一下都不肯。。

convert函数莫名其妙。

对啊
a,b,c和frist,second,third函数调用颠倒位置了!!!
哎。。。。。。

程序太长了,看起来很乱