题目:已知a是一个十六进制数的字符串,现将其转换为十进制数并输出。 在 /**********Program**********/ /********** End **********/补充程序 ----------------------------------------------------------------------- 注意:请勿改动程序中的其他部分。 ---------------------------------------------------------------------*/ #include <stdio.h> #include <string.h> double trans(char a[]) { int i=0, j, m; double n, s,x; s=0.0; while( a[i]!='.' && a[i]) i++; /**********Program**********/ /********** End **********/ return s; } int main() { int i=-1; char a[10]; gets(a); while(a[++i]){ if (a[i]>='a') a[i] -= 32; // 小写字母字符转换为大写 } printf("十六进制数%s转换为十进制数为:%f\n",a,trans(a)); return 0; }
时间: 2023-08-07 14:08:38 浏览: 463
计算机作业:已知一个只包含 0 和 1 的二进制数,长度不大于 10 ,将其转换为十进制并输出。
好的,我会在 `/**********Program**********/` 和 `/********** End **********/` 之间补充程序,将十六进制数转换为十进制数,并输出结果。
```c
#include <stdio.h>
#include <string.h>
double trans(char a[])
{
int i = 0, j, m;
double n, s, x;
s = 0.0;
while (a[i] != '.' && a[i]) i++;
/**********Program**********/
for (j = 0; j < i; j++)
{
m = a[j] - '0';
if (a[j] >= 'A') m -= 7;
s = s * 16 + m;
}
/********** End **********/
return s;
}
int main()
{
int i = -1;
char a[10];
gets(a);
while (a[++i])
{
if (a[i] >= 'a') a[i] -= 32; // 小写字母字符转换为大写
}
printf("十六进制数%s转换为十进制数为:%f\n", a, trans(a));
return 0;
}
```
注意:请勿改动程序中的其他部分。
阅读全文