c++输入一个正整数n(5<n<20),再输入n个整数,使用冒泡排序,将n个整数由大到小输出
时间: 2024-01-01 12:05:44 浏览: 97
好的,我可以帮你解决这个问题。
以下是 C++ 的代码实现:
```c++
#include <iostream>
using namespace std;
int main() {
int n, arr[20];
cin >> n;
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
// 冒泡排序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] < arr[j + 1]) {
swap(arr[j], arr[j + 1]);
}
}
}
// 输出排序后的结果
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
程序首先读入一个正整数 n 和 n 个整数,然后使用冒泡排序将这 n 个整数从大到小排序,最后输出排序后的结果。
希望能够帮到你!
相关问题
4.1.5 输入一个正整数n(1 <n≤10),再输入n个整数,将它们从大到小排序后输出。(利用教材中介绍的选择、冒泡、插入排序中的一个算法完成排序操作)c++
在C++中,我们可以使用选择排序、冒泡排序或插入排序来对一组整数进行降序排列。这里以选择排序为例,因为它比较简单且适用于小型数组:
```cpp
#include <iostream>
using namespace std;
// 选择排序函数,返回数组长度
int selectionSort(int arr[], int n) {
for (int i = 0; i < n - 1; ++i) {
// 找到剩余未排序部分的最大值的索引
int max_idx = i;
for (int j = i + 1; j < n; ++j) {
if (arr[j] > arr[max_idx]) {
max_idx = j;
}
}
// 将找到的最大值与当前位置交换
if (max_idx != i) {
swap(arr[i], arr[max_idx]);
}
}
return n;
}
int main() {
int n;
cout << "请输入一个正整数n(1 < n <= 10): ";
cin >> n;
int arr[n];
cout << "请输入" << n << "个整数: ";
for (int i = 0; i < n; ++i) {
cin >> arr[i];
}
// 对数组进行降序排序
selectionSort(arr, n);
// 输出排序后的数组
cout << "从大到小排序后: ";
for (int i = 0; i < n; ++i) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
在这个程序中,用户首先输入一个数字`n`,然后输入`n`个整数,选择排序会遍历整个数组,每次找到剩余元素中的最大值,将其放置在当前未排序部分的起始位置。最后,程序会输出排序后的结果。
输入一个正整数n(1<n<=10),再输入n个整数,将他们从大到小排序后输出 点击复制后,将打开C知道体验页 这是一个简单的排序问题,c++
语言代码如下:
```
#include <stdio.h>
int main()
{
int n, i, j, temp;
int a[10];
scanf("%d", &n); // 输入n
for(i = 0; i < n; i++)
{
scanf("%d", &a[i]); // 输入n个整数
}
// 冒泡排序
for(i = 0; i < n - 1; i++)
{
for(j = 0; j < n - i - 1; j++)
{
if(a[j] < a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
// 输出排序后的结果
for(i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
return 0;
}
```
代码思路:
1. 首先输入正整数n和n个整数,保存在数组a中。
2. 使用冒泡排序,从大到小排序数组a。
3. 输出排序后的结果。
阅读全文