实现效果如下:
代码分析:
- 定义一个个数变量n,和一个数组,容量需要超过这个个数值。
- 用一个for循环,来输入数组元素。
- 利用一个循环嵌套,外层循环用来遍历排序的次数,内层循环用来遍历具体排序。
- 在内层循环中需要做一个判断,是前一个数与后一个数的判断。
- 最后再利用一个for循环来输出排序完成的数组元素。
代码实现:
# include <iostream>
using namespace std;
int main()
{
int a[100], n;
cout << "输入数组元素个数:" << endl;
cin >> n;
cout << "输入数组元素:" << endl;
for (int i = 0; i < n; i++) cin >> a[i];
for (int i = 0; i < n - 1; i++)
for (int j = 0; j < n - 1 - i; j++)
if (a[j] < a[j + 1])
{
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
cout << "冒泡排序-降序后的数组:" << endl;
for (int i = 0; i < n; i++) cout << a[i] << " ";
cout << endl;
system("pause");
return 0;
}
注意:外层循环中的 “i < n - 1” 的意思是它遍历的次数,减1是因为最后一次不需要遍历了。内层循环中的 “j < n - 1 - i” 的意思是n-1表示下标,-i是每排完一个就少一个,排到后面最大的就不需要排了。if里面的表达式,将里面小于号换成大于号就是升序的算法了。下面的三段语句是定义了一个临时变量来让两个值进行交换的算法。
这段程序到此结束了,大家的支持是我的最大动力,欢迎大家在评论区留言~