反恐行动情缘:谁能告诉我这道C程序题为什么运行出错

来源:百度文库 编辑:高考问答 时间:2024/05/12 00:16:44
题目的要求是给一个不多于5位的正整数,要求:
(1)求出它是几位数;
(2)分别输出每一位数字;
(3)按逆顺序输出各位数字.例如原数为321应输出123
我写的程序是
#include<stdio.h>
void main()
{
long int num;
int g,s,b,q,w,place;
printf("Please input a number:\n");
scanf("%ld",&num);
if(num<=9&&num>0)
place=1;
else if(num<=99)
place=2;
else if(num<=999)
place=3;
else if(num<=9999)
place=4;
else if(num<=99999)
place=5;
else printf("Error number!");
printf("place=%d\n",place);
printf("Each place is:");
w=num/10000;
q=num%10000/1000;
b=num%1000/100;
s=num%100/10;
g=num/10;
switch(place)
{case1: printf("%d\n",g);
printf("%d\n",g); break;
case2: printf("%d,%d\n",s,g);
printf("%d%d\n",g,s); break;
case3: printf("%d,%d,%d\n",b,s,g);
printf("%d%d%d\n",g,s,b); break;
case4: printf("%d,%d,%d,%d\n",q,b,s,g);
printf("%d%d%d%d\n",g,s,b,q); break;
case5: printf("%d,%d,%d,%d,%d\n",w,q,b,s,g);
printf("%d%d%d%d%d\n",g,s,b,q,w); break;
default: printf("Error!\n");
}
}

1.g=num/10------>g=num%10
2.case1---->case 1(case2后面到case5都一样)