【一维数组排序】 输入10个整数到一维数组,计算平均值, 并按从小到大顺序排序(用函数实现选择法或冒泡法排序)。要求:用4个函数分别实现数组的输入、输出、平均值计算和排序。 【运行结果示例】 输入: 1 2 3 4 5 7 0 9 8 6 输出: 1 2 3 4 5 7 0 9 8 6 (第一行输出数组元素,之间用1个空格隔开) 0 1 2 3 4 5 6 7 8 9 (第二行输出排序后的数组元素,之间用1个空格隔开) ave=4.500000 (第三行输出平均值)c语言
时间: 2023-12-03 16:46:54 浏览: 68
下面是一个用冒泡排序实现的C语言程序:
```c
#include <stdio.h>
#define N 10
void input(int a[], int n);
void output(int a[], int n);
float average(int a[], int n);
void sort(int a[], int n);
int main()
{
int a[N];
input(a, N);
printf("输入: ");
output(a, N);
sort(a, N);
printf("输出: ");
output(a, N);
printf("ave=%.6f\n", average(a, N));
return 0;
}
void input(int a[], int n)
{
int i;
printf("请输入%d个整数:", n);
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
}
void output(int a[], int n)
{
int i;
for (i = 0; i < n; i++)
printf("%d ", a[i]);
printf("\n");
}
float average(int a[], int n)
{
int i, sum = 0;
for (i = 0; i < n; i++)
sum += a[i];
return (float)sum / n;
}
void sort(int a[], int n)
{
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (a[j] > a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
```
程序中用了四个函数,分别实现了数组的输入、输出、平均值计算和排序。输入和输出的函数是比较简单的,平均值计算的函数用了一个求和循环和一个除法运算即可,排序函数用了冒泡排序算法。
运行结果示例:
```
请输入10个整数:1 2 3 4 5 7 0 9 8 6
输入: 1 2 3 4 5 7 0 9 8 6
输出: 0 1 2 3 4 5 6 7 8 9
ave=4.500000
```
阅读全文