函数接口定义:
函数接口定义如下:将字符串数组中的十六进制字符串转换为十进制数返回。
double turn(char x[]);
形式参数x[]数组中存放的是十六进制字符串,将其转换为十进制数返回。
如果含有非法字符则输出:输入的数据非法!,并且返回-1。
裁判测试程序样例:
#include <stdio.h>
double turn(char x[]);
int main()
{
char str[10];
double a;
gets(str);
a=turn(str);
printf("%f\n",a);
return 0;
}
/* 请在这里填写答案 */
输入样例:
在这里给出一组输入。例如:
0ff
输出样例:
在这里给出相应的输出。例如:
255.000000
代码长度限制
64 KB
时间限制
400 ms
内存限制
64 MB
#include<string.h>
#include<math.h>
double turn(char x[]){
double sum =0;
for(int i=0;i<strlen(x);i++){
if(x[i]>='0'&&x[i]<='9'){
int tme = x[i]-'0';
sum+=tme*pow(16,strlen(x)-i-1);
}else if(x[i]>='a'&&x[i]<='f'){
int tme = x[i]-'a'+10;
sum+=tme*pow(16,strlen(x)-i-1);
}else if(x[i]>='A'&&x[i]<='F'){
int tme = x[i]-'A'+10;
sum+=tme*pow(16,strlen(x)-i-1);
}else {
printf("输入的数据非法!\n");
return -1;
}
}
return sum;
}
注意 :
不要忘了大写的字母A-F