有关下列问题输出没有结果,求指点
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
F
样例输出
65535
#include <stdio.h>
#include <math.h>
#define N 10
int main() {
int HexToDem(char ch[]);
char hex[N];
scanf("%s",hex[N]);
HexToDem(hex);
return 0;
}
int HexToDem(char ch[]) {
int num;
int Dem(char ch);
int i,n;
for(i=0;i<8;i++) {
n=Dem(ch[i]);
num+=Dem(ch[i])*pow(16,i);
}
printf("%d",&num);
}
int Dem(char ch) {
if(ch>='0'&&ch<='9') {
return ch-'0';
}
switch(ch) {
case 'A':
return 10;
case 'B':
return 11;
case 'C':
return 12;
case 'D':
return 13;
case 'E':
return 14;
case 'F':
return 15;
}
return -1;
}