看一下这段C语言代码,哪出错了?还有,高手可以帮忙把它精简一下吗?

2024年11月30日 01:50
有4个网友回答
网友(1):

#include
void main()
{
int c,n,b1,b2,b3,b4,b5;
printf("输入一个小于5位的数字\n");
scanf("%d",&c);
if(c/10000!=0)
{ n=5;b1=c/10000;} //超过1句代码的要用{}括起来
else if(c/1000!=0) //同上
{n=4;b2=(c%10000)/1000;}
else if(c/100!=0) //同上
{n=3;b3=(c%1000)/100;}
else if(c/10!=0) //同上
{n=2;b4=(c%100)/10;}
else //同上
{ n=1;b5=c%10;}
if(n==1) //里面应该是n==1,C里“=”是赋值的,不是判断的
printf("%d\n",b5);
if(n==2)
printf("%d%d\n",b5,b4);
if(n==3)
printf("%d%d%d\n",b5,b4,b3);
if(n==4)
printf("%d%d%d%d\n",b5,b4,b3,b2);
if(n==5)
printf("%d%d%d%d%d\n",b5,b4,b3,b2,b1);
}
//最后的5个if用switch语句代替吧。

网友(2):

if(n=5)改为if(i==5)下面的也一样

网友(3):

#include
void main()
{
int n;
do{
printf(" please enter a number(less than 5 digits):\n");
scanf("%d",&n);
}while(n>=10000);
f(n);
}
int f(int c)
{
int b1,b2,b3,b4;
b1=c/1000;b2=(c%1000)/100;
b3=(c-b1*1000-b2*100)/10;
b4=c%10;
if(b1==0)
printf(" ");
printf("%d %d %d %d",b4,b3,b2,b1);
}
//不够完美,请原谅!

网友(4):

你这段程序是想实现什么的?看着很混乱