#include<stdio.h> main() { int a,b,c,d,e; printf("please enter a,b,c,d :\n"); scanf("%d%d%d%d%d",&a

为什么这个程序无法运行?
#include<stdio.h>
main()
{
int a,b,c,d,e;
printf("please enter a,b,c,d :\n");
scanf("%d%d%d%d%d",&a,&b,&c,&d);
if (a<b)
a=a;
else
e=a;
a=b;
b=e;
if (a<c)
a=a;
else
e=a;
a=c;
c=e;
if (a<d)
a=a;
else
e=a;
a=d;
d=e;
if (b<c)
b=b;
else
e=b;
b=c;
c=e;
if (b<d)
b=b;
else
e=b;
b=d;
d=e;
if (c<d)
c=c;
else
e=c;
c=d;
d=e;
printf ("%d%d%d%d",a,b,c,d);

}

原来是else那里少了括号,还有scanf那里多了个%d...................改正如下:
#include<stdio.h>
main()
{
int a,b,c,d,e;
printf("please enter a,b,c,d :\n");
scanf("%d%d%d%d",&a,&b,&c,&d);
if (a<b)
a=a;
else
{e=a;
a=b;
b=e;}
if (a<c)
a=a;
else
{e=a;
a=c;
c=e;}
if (a<d)
a=a;
else
{e=a;
a=d;
d=e;}
if (b<c)
b=b;
else
{e=b;
b=c;
c=e;}
if (b<d)
b=b;
else{

e=b;
b=d;
d=e;}
if (c<d)
c=c;
else{
e=c;
c=d;
d=e;}
printf ("%d%d%d%d",a,b,c,d);

}
这样改的话其实更简单一些(a=a,b=b,c=c,d=d这些完全是没有必要的,加了会迷惑人而已)
#include<stdio.h>
int main()
{
int a,b,c,d,e;
printf("please enter a,b,c,d :\n");
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a>b)
{
e=a;
a=b;
b=e;
}
if(a>c)
{
e=a;
a=c;
c=e;
}
if(a>d)
{
e=a;
a=d;
d=e;}
if(b>c)
{
e=b;
b=c;
c=e;
}
if(b>d)
{

e=b;
b=d;
d=e;
}
if (c>d)
{
e=c;
c=d;
d=e;
}
printf ("%d%d%d%d",a,b,c,d);

}
这样易理解一些:
#include<stdio.h>
int main()//这里你要修改一下,因为我用的是c-free,得用int main(),你可以改回void main()
{
int a,b,c,d,max,i,j;
printf("请输入a,b,c,d:\n");
scanf("%d%d%d%d",&a,&b,&c,&d);
char m[4];
m[0]=a;
m[1]=b;
m[2]=c;
m[3]=d;
for(j=0;j<=3;j++)
{
for(i=0;i<=2;i++)
{
if(m[i]>m[i+1])
{
max=m[i];
m[i]=m[i+1];
m[i+1]=max;
}
}

}
for(i=0;i<=3;i++)
{
printf("%d\n",m[i]);
}

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-31
scanf("%d%d%d%d%d",&a,&b,&c,&d);你只有四个变量,而有5 个%d,删除一个就OK了。
第2个回答  2011-03-31
发完整的程序。不完整,看不出来
第3个回答  2011-03-31
if 与else 内的语句用{ }既方便检查,也容易阅读
第4个回答  2011-04-01
enter a number: ") 后面少分号。
相似回答