修改出错的C程序

来源:百度知道 编辑:UC知道 时间:2024/06/20 20:45:42
#include"stdio.h"
#include"conio.h"
void main()
{
long a,b;
int ge,shi,bai,qian,wan;
printf("请输入一个五位及五位以内的数字:");
scanf("%ld",&a);
if(a>9999)
b=5;
else if(a>999)
b=4;
else if(b>99)
b=3;
else if(b>9)
b=2;
else
b=1;
ge=a%10;
shi=a/10%10;
bai=a/100%10;
qian=a/1000%10;
wan=a/100000%10;
switch(b)
{
case 5:printf("是五位数,逆置是%d%d%d%d%d\n",ge,shi,bai,qian,wan);break;
case 4:printf("是四位数,逆置是%d%d%d%d\n",ge,shi,bai,qian);break;
case 3:printf("是三位数,逆置是%d%d%d\n",ge,shi,bai);break;
case 2:printf("是二位数,逆置是%d%d\n",ge,shi);break;
case 1:printf("是一位数,逆置是%d\n",ge);break;
}
getch();
}
1.请输入一个五位及五位以内的数字:78451
是五位数,逆置是15480
2.请输入一个五位及五位以内的数字:789
是一位数,逆置是9
3.请输入一个五位及五位以内的数字

注意这块:

改改:
if(a>9999)
b=5;
else if(a>999&&a<100000)
b=4;
else if(b>99&&a<1000)
b=3;
else if(b>9&&a<100)
b=2;
else
b=1;
上面是习惯写法,不影响结果;

答案的错误原因是:
还有: wan=a/100000%10; 要改成: wan=a/10000%10;或者 wan=a/10000;