关于C语言编程error C2143: syntax error : missing ';' before 'constant'的问题

#include<stdio.h>
#include<math.h>
int main()
{
int a,b,gewei,shiwei,baiwei,qianwei,wanwei;
printf("请输入一个不多于五位的正整数: ");
scanf("%d",&a);
while(a<0||a>=99999)
{
printf("输入错误请重新输入");
scanf("%d",&a);
}
if(a>=0&&a<10) b=1;
else if(a>=10&&a<100) b=2;
else if(a>=100&&a<1000) b=3;
else if(a>=1000&&a<10000) b=4;
else if(a>=10000&&a<100000) b=5;
printf("位数为:%d\n",b);
printf("每位数字为:");
wanwei=a\10000;
qianwei=(int)(a-wanwei*10000)\1000;
baiwei=(int)(a-wanwei*10000-qianwei*1000)\100;
shiwei=(int)(a-wanwei*10000-qianwei*1000-baiwei*100)\10;
gewei=(int)(a-wanwei*10000-qianwei*1000-baiwei*100-shiwei*10);
switch(b)
{
case 5:printf("%d,%d,%d,%d,%d",wanwei,qianwei,baiwei,shiwei,gewei);
printf("\n反序数字为:%d,%d,%d,%d,%d\n",gewei,shiwei,baiwei,qianwei,wanwei);
case 4:printf("%d,%d,%d,%d",qianwei,baiwei,shiwei,gewei);
printf("\n反序数字为:%d,%d,%d,%d\n",gewei,shiwei,baiwei,qianwei);
case 3:printf("%d,%d,%d",baiwei,shiwei,gewei);
printf("\n反序数字为:%d,%d,%d\n",gewei,shiwei,baiwei);
case 2:printf("%d,%d",shiwei,gewei);
printf("\n反序数字为:%d,%d\n",gewei,shiwei);
case 1:printf("%d",gewei);
printf("\n反序数字为:%d\n",gewei);
}
return 0;
}

运行时出现D:\C\输入五位数.cpp(23) : error C2143: syntax error : missing ';' before 'constant'

你好!!

    注意篮圈的地方,你的 / 除号方向反了

修改后的完整代码:

#include<stdio.h>
#include<math.h>
int main()
{
 int a,b,gewei,shiwei,baiwei,qianwei,wanwei;
 printf("请输入一个不多于五位的正整数: ");
    scanf("%d",&a);
  while(a<0||a>=99999)
 {
  printf("输入错误请重新输入");
  scanf("%d",&a);
 }
  if(a>=0&&a<10)          b=1;
else if(a>=10&&a<100)        b=2;
else if(a>=100&&a<1000)      b=3;
else if(a>=1000&&a<10000)    b=4;
else if(a>=10000&&a<100000)  b=5;
printf("位数为:%d\n",b);
printf("每位数字为:");
wanwei=a/10000;
qianwei=(int)(a-wanwei*10000)/1000;
baiwei=(int)(a-wanwei*10000-qianwei*1000)/100;
shiwei=(int)(a-wanwei*10000-qianwei*1000-baiwei*100)/10;
gewei=(int)(a-wanwei*10000-qianwei*1000-baiwei*100-shiwei*10);
switch(b)
{
  case 5:printf("%d,%d,%d,%d,%d",wanwei,qianwei,baiwei,shiwei,gewei);
       printf("\n反序数字为:%d,%d,%d,%d,%d\n",gewei,shiwei,baiwei,qianwei,wanwei);
  case 4:printf("%d,%d,%d,%d",qianwei,baiwei,shiwei,gewei);
    printf("\n反序数字为:%d,%d,%d,%d\n",gewei,shiwei,baiwei,qianwei);
  case 3:printf("%d,%d,%d",baiwei,shiwei,gewei);
    printf("\n反序数字为:%d,%d,%d\n",gewei,shiwei,baiwei);
  case 2:printf("%d,%d",shiwei,gewei);
    printf("\n反序数字为:%d,%d\n",gewei,shiwei);
  case 1:printf("%d",gewei);
    printf("\n反序数字为:%d\n",gewei);
}
return 0;
}

运行结果:

    

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-06
wanwei=a\10000;
qianwei=(int)(a-wanwei*10000)\1000;
baiwei=(int)(a-wanwei*10000-qianwei*1000)\100;
shiwei=(int)(a-wanwei*10000-qianwei*1000-baiwei*100)\10;
gewei=(int)(a-wanwei*10000-qianwei*1000-baiwei*100-shiwei*10);

    上面这一部分改为:

wanwei=a/10000;
qianwei=(int)(a-wanwei*10000)/1000;
baiwei=(int)(a-wanwei*10000-qianwei*1000)/100;
shiwei=(int)(a-wanwei*10000-qianwei*1000-baiwei*100)/10;
gewei=(int)(a-wanwei*10000-qianwei*1000-baiwei*100-shiwei*10);

    你把左右斜杠搞错了。


另外说一句,其实还有别的办法可以求这几个变量的值

wanwei=a div 10000;
qianwei=(a mod 100000) div 1000;
baiwei=(a mod 1000) div 100;
shiwei=(a mod 100) div 10;
gewei=a mod 10;

第2个回答  2013-11-06
line20 ~ line24
除号写错了
应该是 /
不是 \
相似回答