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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写一个函数,输入十进制数,输出相应的十六进制数相关的知识,希望对你有一定的参考价值。

#include<stdio.h>

#include<math.h>

#include<string.h>

int main()

char a[10];

void convert(char a[]);

printf("请输入十六进制数:");

gets(a);//输入十六进制数

convert(a);

return 0;

void convert(char a[])

int n,i,num=0;

n=strlen(a);

for(i=n-1;i>=0;i--)

if(a<i>&gt;='0'&&a<i>&lt;='9')

num+=(a<i>-'0')*pow(16,n-1-i);

else if(a<i>&gt;='A'&&a<i>&lt;='Z')

num+=(10+(a<i>-'A'))*pow(16,n-1-i);

else if(a<i>&gt;='a'&&a<i>&lt;='z')

num+=(10+(a<i>-'a'))*pow(16,n-1-i);

printf("转换十进制为:");

printf("%d",num);

扩展资料:

gets()的用法:

gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束;但回车符不属于这个字符串。其调用格式为:gets(s);其中s为字符串变量(字符串数组名或字符串指针)。

gets(s)函数与scanf("%s",s)相似,但不完全相同,使用scanf("%s",s)函数输入字符串时存在一个问题,就是如果输入了空格会认为输入字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到回车为止。

示例:

#include&lt;stdio.h&gt;

int main()

char s[20];

printf("What's your name?\\n");

gets(s);

printf("%s\\n",s);

return 0;

当输入a bde回车的时候,会输出a bde。

参考技术A #include<iostream>
using namespace std;
long fun(char *s)

int i,t;
long sum=0;
for(i=0;s[i];i++)

if(s[i]<='9') t=s[i]-'0';
else t=s[i]-'a'+10;
sum=sum*16+t;

return sum;

main()

long m;
char s[50];
cout<<"请输入十六进制数: ";
cin>>s;
m=fun(s);
cout<<"十进制数为:"<<m<<endl;
参考技术B 回答

根据你的问题,你的代码中就只有一个change函数没有实现,具体实现方法有多种形式,我这里选择我认为最简单的一种方式将其实现如下:int change(char *hx)int ret = 0;sscanf(hx, "%x", &ret);return ret;将该函数放到你的main函数的前面即可。

提问

可我敲了代码并不能运行出来

你人呢

以上是关于写一个函数,输入十进制数,输出相应的十六进制数的主要内容,如果未能解决你的问题,请参考以下文章

7-29 jmu-python-不同进制数 (10 分)

用c语言编写函数,将输入的十进制数转换成十六进制数并输出

用python输入一个十进制数,输出其二进制串,八进制串,十六进制串

c语言十六进制字符转化成十进制数字问题

C语言如何定义一个16进制数

c语言输入一个字符串转换为十六进制并输出