在主函数中首先输入一个整数n(1<n<=100),然后再输入n个整数存入数组中,然后用选择排序法对数组中的n个元素从大到小排序,最后输出数组所有元素。
时间: 2023-05-31 17:17:57 浏览: 446
C语言程序设计-编写函数用选择排序法对数组中的数据进行从小到大的排序;
5星 · 资源好评率100%
### 回答1:
好的,以下是代码实现:
```python
n = int(input("请输入一个整数n(1<n<=100): "))
arr = []
for i in range(n):
num = int(input("请输入第{}个整数: ".format(i+1)))
arr.append(num)
# 选择排序
for i in range(n-1):
max_index = i
for j in range(i+1, n):
if arr[j] > arr[max_index]:
max_index = j
arr[i], arr[max_index] = arr[max_index], arr[i]
print("排序后的数组为:", arr)
```
希望能对你有所帮助!
### 回答2:
此程序共分为三个部分:输入、排序和输出。
输入部分:
首先,在主函数中输入一个整数n,代表将要输入的整数个数。
然后再输入n个整数,依次存入数组中。
排序部分:
使用选择排序法对数组中的n个元素从大到小排序。
选择排序法的基本思想是:每次在剩下的元素中,找到最大(或最小)的元素,然后将其与剩下的第一个元素交换位置。
具体步骤如下:
1.比较第1个元素和剩下的n-1个元素,找到最大的元素,并记录其位置。
2.将最大元素与第1个元素交换位置。
3.对剩下的n-1个元素进行排序,重复上述步骤,每次比较元素的个数减1,直到只剩下一个元素为止。
输出部分:
将排序后的数组所有元素逐一输出即可。
最终,完整程序如下:
```
#include <stdio.h>
void selectSort(int arr[], int n) //选择排序函数
{
int maxIndex, temp;
for (int i = 0; i < n-1; i++) {
maxIndex = i;
for (int j = i+1; j < n; j++) {
if (arr[j] > arr[maxIndex]) {
maxIndex = j;
}
}
temp = arr[i];
arr[i] = arr[maxIndex];
arr[maxIndex] = temp;
}
}
int main()
{
int n, arr[100];
printf("请输入要排序的整数个数:");
scanf("%d", &n);
printf("请输入%d个整数:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
selectSort(arr, n); //选择排序
printf("排序后的结果为:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
### 回答3:
首先,我们需要在主函数中输入一个整数n和n个整数存入数组中:
```c++
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int a[n];
for(int i = 0; i < n; i++)
{
cin >> a[i];
}
}
```
接着,我们需要用选择排序法对数组中的n个元素从大到小排序。选择排序法的思想是从未排序部分中选出最大的元素,放到已排序部分的最前面,重复这个步骤直到所有元素都排序完毕。实现代码如下:
```c++
for(int i = 0; i < n - 1; i++)
{
int max_index = i;
for(int j = i + 1; j < n; j++)
{
if(a[j] > a[max_index])
{
max_index = j;
}
}
swap(a[i], a[max_index]);
}
```
最后,我们输出数组中所有元素即可:
```c++
for(int i = 0; i < n; i++)
{
cout << a[i] << " ";
}
```
完整代码如下:
```c++
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int a[n];
for(int i = 0; i < n; i++)
{
cin >> a[i];
}
for(int i = 0; i < n - 1; i++)
{
int max_index = i;
for(int j = i + 1; j < n; j++)
{
if(a[j] > a[max_index])
{
max_index = j;
}
}
swap(a[i], a[max_index]);
}
for(int i = 0; i < n; i++)
{
cout << a[i] << " ";
}
return 0;
}
```
阅读全文