题目:已知a是一个十六进制数的字符串,现将其转换为十进制数并输出。 例如:char a[]="B5.3d" 转换为十进制数后的输出结果为:181.238281 如果 char a[]="B5" 转换为十进制数后的输出结果为:181.000000 ----------------------------------------------------------------------- 注意:除要求填空的位置之外,请勿改动程序中的其他部分。 ---------------------------------------------------------------------*/ #include
#include
double trans(char a[]) { int i=0, j, m; double n, s,x; s=0.0; /**************************SPACE*************************/ while( 【?】&& a[i]) i++; for(j=0; j
='A') m -= 7; s=s*16+m; } if(a[i] == '.') { /* 处理小数部分 */ /**************************SPACE*************************/ x=n= 【?】; for(j=i+1; a[j]; j++) { m = a[j]-'0'; if(a[j]>='A') m -= 7; s=s+m*x; x=x*n; } } return s; } int main() { int i=-1; char a[]="B5.3d"; while(a[++i]){ if (a[i]>='a') a[i] -= 32; // 小写字母字符转换为大写 } printf(" 十六进制数%s转换为十进制数为:%f\n",a,trans(a)); return 0; }