【一维数组排序】 输入10个整数到一维数组,计算平均值, 并按从小到大顺序排序(用函数实现选择法)。要求:用4个函数分别实现数组的输入、输出、平均值计算和排序。
时间: 2023-11-22 20:54:00 浏览: 175
下面是代码实现:
```c
#include <stdio.h>
void input(int arr[], int n); // 输入函数
void output(int arr[], int n); // 输出函数
float average(int arr[], int n); // 平均值计算函数
void selectionSort(int arr[], int n); // 选择排序函数
int main() {
int arr[10];
input(arr, 10); // 输入
output(arr, 10); // 输出原始数组
printf("平均值为:%.2f\n", average(arr, 10)); // 计算平均值并输出
selectionSort(arr, 10); // 排序
output(arr, 10); // 输出排序后的数组
return 0;
}
// 输入函数
void input(int arr[], int n) {
printf("请输入10个整数:\n");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
}
// 输出函数
void output(int arr[], int n) {
printf("数组为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n\n");
}
// 平均值计算函数
float average(int arr[], int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += arr[i];
}
return (float)sum / n;
}
// 选择排序函数
void selectionSort(int arr[], int n) {
int minIndex, temp;
for (int i = 0; i < n - 1; i++) {
minIndex = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
```
这里使用了4个函数,分别为输入函数`input()`、输出函数`output()`、平均值计算函数`average()`、选择排序函数`selectionSort()`。
其中输入函数`input()`用于输入10个整数到数组中,输出函数`output()`用于输出数组,平均值计算函数`average()`用于计算数组的平均值,选择排序函数`selectionSort()`用于将数组从小到大排序。最后在`main()`函数中依次调用这四个函数即可完成题目要求。
阅读全文