用函数实现(1)由健盘输入10个大于0的正整数(保存到数组a中),(2)用选择法(或其它方法)实现从大到小排序(3)将排序后的各数组元票钟出。(要求三个功能分例用三个的数实现,主的数已经给出。)
时间: 2024-03-02 11:54:19 浏览: 17
下面是实现上述要求的函数代码:
```
#include <iostream>
using namespace std;
void input(int a[], int n) {
cout << "请输入" << n << "个大于0的正整数:" << endl;
for (int i = 0; i < n; i++) {
cin >> a[i];
while (a[i] <= 0) {
cout << "输入有误,请重新输入:" << endl;
cin >> a[i];
}
}
}
void selectionSort(int a[], int n) {
for (int i = 0; i < n - 1; i++) {
int maxIndex = i;
for (int j = i + 1; j < n; j++) {
if (a[j] > a[maxIndex]) {
maxIndex = j;
}
}
if (maxIndex != i) {
int temp = a[i];
a[i] = a[maxIndex];
a[maxIndex] = temp;
}
}
}
void output(int a[], int n) {
cout << "排序后的数组为:";
for (int i = 0; i < n; i++) {
cout << a[i] << " ";
}
cout << endl;
}
int main() {
const int n = 10;
int a[n];
input(a, n);
selectionSort(a, n);
output(a, n);
return 0;
}
```
该程序中,我们定义了三个函数,分别是input、selectionSort和output。其中,input函数用于输入n个大于0的正整数并保存到数组a中;selectionSort函数用于使用选择排序算法将数组a从大到小排序;output函数用于输出排序后的数组a。
在主函数中,我们首先定义了一个常量n等于10,然后定义了一个长度为n的数组a。接着调用input函数输入n个大于0的正整数并保存到数组a中;再调用selectionSort函数使用选择排序算法将数组a从大到小排序;最后调用output函数输出排序后的数组a。
需要注意的是,在input函数中,我们使用while循环来确保输入的每个数字都是大于0的正整数。如果输入有误,则要求用户重新输入。