用c++从键盘输入数组长度n(20以内),以及n个数,按从小到大的顺序进行排序。用例: 假如输入为: 10 9 8 7 6 5 4 3 2 1 0 则输出为: 0 1 2 3 4 5 6 7 8 9
时间: 2023-12-29 13:02:10 浏览: 75
好的,我可以帮你写一个简单的代码实现。代码如下:
```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]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
// 输出排序后的数组
for(int i=0; i<n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
这里使用的是冒泡排序,时间复杂度为 O(n^2),对于输入规模较小的情况下效果还不错。如果需要更高效的排序算法,可以使用快速排序等其他算法。
相关问题
从键盘输入数组长度n(20以内),以及n个数,按从小到大的顺序进行排序。用例: 假如输入为:
好的,以下是用C++实现的从小到大排序的代码:
```
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
int n;
cout << "请输入数组长度:";
cin >> n;
if (n < 1 || n > 20) {
cout << "Invalid input" << endl;
return 0;
}
int arr[n];
cout << "请输入" << n << "个数:" << endl;
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
sort(arr, arr + n);
cout << "从小到大排序结果为:" << endl;
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
以上代码中,我们使用了 `sort` 函数来对输入的数组进行排序,排序后再依次输出即可。同时使用了 if-else 语句来处理无效输入,输出 "Invalid input"。
从键盘输入数组长度n(20以内),以及n个数,按从小到大的顺序进行排序。用例: 假如输入为: 10 9 8 7 6 5 4 3 2 1 0 则输出为: 0 1 2 3 4 5 6 7 8 9
好的,下面是一个可以实现你需要的功能的 C++ 代码:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
int arr[20];
cout << "请输入数组长度(20以内):";
cin >> n;
cout << "请输入" << 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]);
}
}
}
cout << "排序后的结果为:";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
在这个代码中,我们首先从键盘输入数组长度和每个元素的值,并将它们存储到数组中。然后使用冒泡排序算法对数组进行排序,最后输出排序后的结果。
希望这个代码能够帮到你!
阅读全文