7.2防骑手法:输入4个整数,要求从大到小排列(用C语言的IF语句)

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 09:09:07
main()
{
int a,b,c,d,m;
scanf("%d %d %d %d",&a,&b,&c,&d);
if(b>a)
{m=a;a=b;b=m;}
if(d>c)
{m=c;c=d;d=m;}
if(c>a)
{m=a;a=c;c=m;}
if(c>b);
{m=b;b=c;c=m;}
printf("\n%d %d %d %d\n",a,b,c,d);
}看我做的正确不?
没对的话 谁给我个正确的

#include<stdio.h>
int main()
{
 
int a, b, c, d, m;
printf("输入四个整数:");
scanf("%d%d%d%d", &a, &b, &c, &d);
if(b>a) 
{m=a;a=b;b=m;} 
else if(c>b) {m=c;c=b;b=m;} 
if(d>c) 
{m=d;d=c;c=m;} /*至此d成了最小的*/ 
if(b>a) 
{m=a;a=b;b=m;} 
if(c>b) 
{m=c;c=b;b=m;} /*至此c成为次小的*/ 
if(b>a) 
{m=a;a=b;b=m;} /*至此a≥b≥c≥d*/ 
printf("\n%d %d %d %d\n",a,b,c,d); 
return ;
}

就是冒泡算法咯:
把序列底部的数字跟上面的数字依次比较,如果比上面的大就把他们交换位置,直到比上面的小为止,这样把每个数字都这样弄一次数列就按顺序排好了。

void main()
{
int a[3];
int i,temp;

for(i=0;i<4;i++)
{
scanf("%d",&a[i]);
}

for(i=0;i<4;i++)
{
int j;
for(j=0;j<=4-i;j++)
{

if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}

}
}

for(i=0;i<4;i++)
{
printf("%d",a[i]);
}

}

main()
{ /*冒泡法排序*/
int a,b,c,d,m;
scanf("%d %d %d %d",&a,&b,&c,&d);
if(b>a)
{m=a;a=b;b=m;}
if(c>b)
{m=c;c=b;b=m;}
if(d>c)
{m=d;d=c;c=m;} /*至此d成了最小的*/
if(b>a)
{m=a;a=b;b=m;}
if(c>b)
{m=c;c=b;b=m;} /*至此c成为次小的*/
if(b>a)
{m=a;a=b;b=m;} /*至此a≥b≥c≥d*/
printf("\n%d %d %d %d\n",a,b,c,d);
}

刚刚看了,不对,如果用for循环能简单点

b和d需要比较一下吧?