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 编辑 ]