c语言写一个函数,输入一个十六进制数,输出相应的十进制数

/*写一个函数,输入一个十六进制数,输出相应的十进制数*/#include<stdio.h>intmain(){intshiliu(inta);inta,b;printf... /*写一个函数,输入一个十六进制数,输出相应的十进制数*/
#include<stdio.h>
int main()
{ int shiliu(int a);
int a,b;
printf("please input a 16 figure\n");
scanf("%x",&a);
b=shiliu(int (a));
printf("%d\n",b);
return 0;
}
int shiliu(int x)
{
int n=0;
if(x>='0'&&x<='9')n=n*16+x-'0';
if(x>='a'&&x<='f')n=n*16+x-'a'+10;
if(x>='A'&&x<='F')n=n*16+x-'A'+10;
return (n);
}
哪里有问题?
展开
 我来答
听不清啊
高粉答主

推荐于2016-05-13 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#include <stdio.h>

long hex2dec(char *p)

{

long x=0;

    for(;*p;p++)

{

if(*p>='0'&&*p<='9')x=x*16+*p-'0';

 else if(*p>='A'&&*p<='F')x=x*16+*p-'A'+10;

  else if(*p>='a'&&*p<='f')x=x*16+*p-'A'+10;

else 

{

printf("Data error!\n"); 

return -1;

}

}

return x;

}


int main()

{

char s[20];

scanf("%s",s);

printf("%sH=%ldD\n",s,hex2dec(s));

system("pause");

return 0;

}

百度网友83cdc1c
2015-06-05 · TA获得超过5788个赞
知道大有可为答主
回答量:1907
采纳率:100%
帮助的人:819万
展开全部
#include<stdio.h>
int main()
{   int shiliu(char *x);
    char a[100];
    int b;
printf("please input a 16 figure\n");
gets(a);
b=shiliu(a);
printf("%d\n",b);
return 0;
}
int shiliu(char *x)
{
int n=0;
while(*x != '\0')
    {
        if(*x>='0' && *x<='9')
            n=n*16+ *x-'0';
        if(*x>='a'&& *x<='f')
            n=n*16+ *x-'a'+10;
        if(*x>='A'&& *x<='F')
            n=n*16+ *x-'A'+10;
        x++;
    }
    return (n);
}

输入的时候作为整形输入,处理的时候作为字符型处理,是矛盾的。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式