输入10个整数,按从大到小排序,使用冒泡排序法。
效果如图:
问题分析:
读题注意点:
1. 输入的是整数//整型变量
2. 按从大到小排序
注意:
1.在内层循环中应该进行10-i 次比较,但是实际上的i 是从0开始的,但是之前的分析中i 的实际意义是步数,也就是从1开始的,所以在循环中是10-i-1=9-i 次。
2.使用数组进行排序
3.注意元素输入和输出数组的方式
思路:
1.使用双重循环语句 //外层控制循环多少趟,内层控制每一趟循环的次数
2.假设n个数,那么就要进行n-1 步,第i 步中则需要n-i 次比较
内层循环前后两元素比较if (n[j] <n[j + 1])
//从大到小冒泡排序 #include <iostream> using namespace std; int main() { int n[10]; int i, j; int temp; //用于缓存需要交换的数字 cout << "请输入10个整数:" << endl; for (i = 0; i < 10; i++) { cin >> n[i]; } cout << "---------------------------------" <<endl; cout << "排序前:" << endl; for(i=0; i<10; i++) { cout << n[i] << " "; //此处再添加一个循环输出输入的数据 } cout << " "; for (i = 0; i < 9;i++) //共进行9步 { for (j = 0; j < 9 - i;j++) //在每一步进行10-i次两两比较 { if (n[j] < n[j + 1]) { temp = n[j]; n[j] = n[j + 1]; n[j + 1] = temp; } } } cout << "排序后:" << endl; for (i = 0; i < 10; i++) { cout << n[i] << " "; } cout << endl; return 0; }