SWITCH语句总提示CASE和DEFAULT不合法
如下程序,编译时总出现CASE不 合法,求帮助,谢谢各位大虾啊!!!小弟想知道不合法的原因和修改方法,谢谢大家了,程序要实现的是16进制转10进制。
程序代码:#include<stdio.h>
#include<math.h>
#include<string.h>
int d(char x[])
{
int a[100],l,b,i=0,s;
l=strlen(x);
while(i<l)
{
switch(x[i]);
{
case '1':a[i]=1;break;
case '2':a[i]=2;break;
case '3':a[i]=3;break;
case '4':a[i]=4;break;
case '5':a[i]=5;break;
case '6':a[i]=6;break;
case '7':a[i]=7;break;
case '8':a[i]=8;break;
case '9':a[i]=9;break;
case '0':a[i]=0;break;
case 'a':a[i]=10;break;
case 'b':a[i]=11;break;
case 'c':a[i]=12;break;
case 'd':a[i]=13;break;
case 'e':a[i]=14;break;
case 'f':a[i]=15;break;
case 'A':a[i]=10;break;
case 'B':a[i]=11;break;
case 'C':a[i]=12;break;
case 'D':a[i]=13;break;
case 'E':a[i]=14;break;
case 'F':a[i]=15;break;
default: printf("错误!");
}
i++;
}
i=0;
while(i<l)
{
s+=a[i]*pow(16,l-i-1);
i++;
}
return(s);
}int main()
{
char a[100],b[100];
int sum,c;
scanf("%s,a");
scanf("%s,b");
c=d(a);
sum=c;
c=d(b);
sum+=c;
printf("%d",sum);
return(0);
}
[ 本帖最后由 绯苍幻想曲 于 2010-12-23 11:59 编辑 ]










