结果不对
#include <stdio.h>
#define MAX 1000 //一个十六进制的最大位数
int main(){
int cov(char s[]);
char num[MAX]; //输入的16进制数 (字符)
int i=0;
char c; //接收输入的字符
printf("input a hex number:");
while((c=getchar())!='\0'){ // 一个一个字符
if(c>='0'&&c<='9'||c>='a'&&c<='f'||c>='A'&&c<='F'){
num[i++]=c;
}
else {
num[i]='\0';
printf("decimal number:%d\n",cov(num));
}
}
return 0;
}
int cov(char s[]){
int i,n=0;
for(i=0;s[i]!='\0';i++){
if(s[i]>='0'&&s[i]<='9')n=n*16+s[i]-'\0';
if(s[i]>='a'&&s[i]<='f')n=n*16+s[i]-'a'+10;
if(s[i]>='A'&&s[i]<='F')n=n*16+s[i]-'A'+10;
}
return n;
}