求找bug
Devc环境编译下无语法错误
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
int m=0,count,i,j=0;
char a[8];
gets(a);
count=strlen(a);
//十六进制转十进制
for(i=count-1;i>=0;i--)
{
if(a[i]>='A'&&a[i]<='F')
a[i]=a[i]-'A'+10;
else
a[i]=a[i]-'0';
a[i]=a[i]*pow(16,j);
m=m+a[i];
j++;
}
printf("%d",m);
return 0;
}
来,让本大神告诉你该如何改进,我看了你的代码,存在一个小问题,在使用 pow(16, j) 计算时,可能会得到不准确的结果。这是因为 pow 函数返回的是一个浮点数,可能存在舍入误差,从而导致最终结果不准确。
建议改用循环的方式计算 16 的幂,而不要使用 pow 函数。同时使用更安全的输入函数替代 gets 函数,例如fgets函数。
其他问题并没有发现,这个代码还算简单。