请看下这个c程序错在那里了?

来源:百度知道 编辑:UC知道 时间:2024/06/03 16:42:25
这是个16进制转10进制的题,看下主函数错在那里了,谢谢!
我错了!!!
#include<stdio.h>
#define M 1000

int tansfer(char x[])
{
int i,n=0;
for(i=0;x[i]!='\0';i++)
{if(x[i]>='0'&&x[i]<='9')
n=n*16+x[i]-'0';
if(x[i]>='a'&&x[i]<='f')
n=n*16+x[i]-'a'+10;
if(x[i]>='A'&&x[i]<='F')
n=n*16+x[i]-'A'+10;
}
return n;
}

void main()
{
int i,c,flag=0;
char t[M];
i=0;
printf("in put a HEX:\n");
while((c=getchar())!='\0'&&i<M)

{if(c>='0'&&c<='9'||c>='a'&&c<='f'||c>='A'&&c<='F')
t[i++]=c;
}
t[i]='\0';

printf("decimal number :%d\n",tansfer(t));
}

三楼的那位兄弟,16进制里面有a,b,c,d,e,f,这些怎么处理呢?

你把问题复杂化了你可以这样做:
#include<stdio.h>
mian()
{
int a;
scanf("%x",&a);
printf("%d\n",a);

}
我看你写的,我觉得你写的和题目不一样,你好好在看看

帅哥题目在那里呢?

你的程序 乱的很。。。。。。。。