#include
int change(char *s)
{
int sum=0;
while(*s)
{
if(*s>='a'&&*s<='z')
sum=();
else if(*s>='A'&&*s<='Z')
sum=();
else if(*s>='0'&&*s<='9')
sum=();
();
}
return sum;
}
void main()
{
char a[81];
int c,(*p)();
gets(a);
p=();
c=(*p)(a);
printf("%d\n",c);
}
填空题:从键盘输入一个十六进制字符串,将其转换为十进制数。函数change()实现转换,主函数通过函数指针调用转换函数,求教大侠解释
#include <stdio.h>
int change(char *s)
{
int sum=0;
while(*s)
{
if(*s>='a'&&*s<='z')
sum=(*s-'a' + 10 + sum);
else if(*s>='A'&&*s<='Z')
sum=(*s - 'A' + 10 + sum);
else if(*s>='0'&&*s<='9')
sum=(*s - '0' + 10 + sum);
();
}
return sum;
}
void main()
{
char a[81];
int c,(*p)();
gets(a);
p=();
c=(*p)(a);
printf("%d\n",c);
}
sum=(*s-'a' + 10 + sum); -> sum=(*s-'a' + 10 + sum * 10); 别的类似
#include <stdio.h>
int change(char *s)
{
int sum=0;
while(*s)
{
if(*s>='a'&&*s<='z')
sum=(*s-'a' + 10 + sum*16);
else if(*s>='A'&&*s<='Z')
sum=(*s - 'A' + 10 + sum*16);
else if(*s>='0'&&*s<='9')
sum=(*s - '0' + 10 + sum*16);
s++;
}
return sum;
}
void main()
{
char a[81];
int c,(*p)();
gets(a);
p=change;
c=(*p)(a);
printf("%d\n",c);
}
还有一个括号,填s++