习题 7.16 写一个函数,输入一个十六进制数,输出相应的十进制数。

C程序设计(第四版) 谭浩强 习题7.16 个人设计

习题 7.16 写一个函数,输入一个十六进制数,输出相应的十进制数。

代码块:

方法1:

#include 
#include 
void xtod(int x);              //定义转制函数
int main()
{
    int i;
    scanf("%x", &i);           //输入一个十六进制数
    xtod(i);                   //调用转制函数
    system("pause");
    return 0;
}
//转制函数
void xtod(int x)
{
    printf("%d\n", x);
}

方法2:

#include 
#include 
#include 
#include 
void xtod(char s[]);                          //定义转制函数
int main()
{
    char str[10];
    printf("Please enter Hex number: ");     //输入一个字符串
    scanf("%s", str);
    xtod(str);                               //调用转制函数
	system("pause");
    return 0;
}
//转制函数
void xtod(char s[])
{
    int i, j, n=strlen(s);
    double num[10], sum;
    //以下是判断输入的数是否是合法的十六进制数,不是就报错并重新输入
    for (i=0; i'9'&&s[i]<'A')||s[i]>'f'||(s[i]>'F'&&s[i]<'a')||n>10){
            printf("Error!\nPlease enter Hex number: ");
            scanf("%s", s);
        }
    //以下将输入的字符转换为十进制数字
    for (i=0; i='0'&&s[i]<='9') num[i]=s[i]-'0';
        if (s[i]>='a'&&s[i]<='f') num[i]=(int)s[i]-87;
        if (s[i]>='A'&&s[i]<='F') num[i]=(int)s[i]-55;
    }
    //将数字转为十进制
    for (i=0, j=n-1, sum=0.0; i

你可能感兴趣的:(C程序设计,(第四版),谭浩强,课后答案)