资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
简单是简单,但不知道为什么又是零蛋……
#include<stdio.h>
#include<math.h>
int main(void)
{
char a[10]={0};
int n;
for(n=0;n<=9;n++)
{
a[n]=getchar();
if(a[n]=='\n')
break;
}
int n_=n;
for(n=0;n<=n_;n++)
{
if(a[n]=='A')
a[n]=10;
if(a[n]=='B')
a[n]=11;
if(a[n]=='C')
a[n]=12;
if(a[n]=='D')
a[n]=13;
if(a[n]=='E')
a[n]=14;
if(a[n]=='F')
a[n]=15;
if(a[n]=='\n')
break;
}
int result=0;
n--;
for(;n>=0;n--)
{
result=result+a[n]*pow(16,n);
}
printf("%d",result);
return 0;
}
就这样吧……