从大到小排
约 8 分钟
想让队伍从高到矮,规则不用重学,只把"谁大往后挪"改成"谁小往后挪"。一句话:把比较的符号反个方向,其余原封不动。
#include <iostream>
using namespace std;
int main() {
int a[5] = {5, 3, 4, 1, 2}, n = 5;
for (int i = 0; i < n - 1; i++)
for (int j = 0; j < n - 1 - i; j++)
if (a[j] < a[j+1]) { // 大于号改成小于号
int t = a[j]; a[j] = a[j+1]; a[j+1] = t;
}
for (int i = 0; i < n; i++) cout << a[i] << " "; // 5 4 3 2 1
return 0;
}
只需改判断里那一个比较符号 > 变 <,交换的那三行一个字都别动。要是把交换也一起改了,反而又变回从小到大了。
小纸条
冒泡改成从大到小,要改哪里?
登录 后可看答案