四个数得出排序大小(头疼),网上搜的看不懂求解释
#include <stdio.h>int main()
{
int a, b, c, d, t;
printf("请输入4个数:");
scanf("%d%d%d%d", &a, &b, &c, &d);
if (a>b){
t=a; a=b; b=t;
}
if (a>c){
t=a; a=c; c=t;
}
if (a>d){
t=a; a=d; d=t;
}
if (b>c){
t=b; b=c; c=t;
}
if (b>d){
t=b; b=d; d=t;
}
if (c>d){
t=c; c=d; d=t;
}
printf("排序结果:%d %d %d %d", a, b, c, d);
return 0;
}
敲了一晚上有思路但运行都是错的,最终不得已去网上搜这段代码{:10_266:}
各位热心网友帮我看看我在网上搜的这段代码,我看不懂这思路,可以麻烦解释下吗(大概了解知道是通过将原来的值与相比的值互换,但整体了解有点卡壳){:10_269:} 这个其实就是把冒泡排序法展开来写的。
冒泡排序法,就是通过循环,每次排除一个最小或者最大的,然后通过多次循环,完成排序
这个程序前三次if,选出最小的放在a的位置,然后两个if选出第二小的放在b的位置,然后一个if选出第三小的放在c的位置,d就是最大的了。 sunrise085 发表于 2020-11-28 23:04
这个其实就是把冒泡排序法展开来写的。
冒泡排序法,就是通过循环,每次排除一个最小或者最大的,然后通过 ...
(⊙o⊙)我潜意识得把a当最大d当最小了,我刚刚听你这么一说假设了下还真如此,这种算法算是比较简单得排序吧?除了这种还会有更容易的吗?(我随便问问)
但是还是很感谢你的热心回答{:5_109:} Cathy-Chen258 发表于 2020-11-28 23:10
(⊙o⊙)我潜意识得把a当最大d当最小了,我刚刚听你这么一说假设了下还真如此,这种算法算是比较简单得排 ...
排序算法有很多种,冒泡是很容易理解的一种,除此之外还有快速排序、桶排序、计数排序、插入排序等鞥,你若想多学习一些,可以网上搜一下排序算法。
页:
[1]