用C语言指针的方式实现下面的功能: (1)输入10个整数,求最大小值和平均值。 (2)对这10个整数进行从小到大排序,并打印输出
时间: 2024-09-09 17:00:48 浏览: 47
举例通过函数求数组元素的平均值。-c语言教程
在C语言中,我们可以使用指针来实现上述功能。首先,我们需要动态分配内存存储这10个整数,然后计算最大值、平均值以及进行排序。
```c
#include <stdio.h>
#include <stdlib.h>
// 定义函数声明,使用指针作为参数
void input_numbers(int *arr, int n);
void print_max_avg(int *arr, int n);
void sort_and_print(int *arr, int n);
int main() {
// 1. 输入10个整数
int numbers[10];
input_numbers(numbers, 10);
// 2. 求最大小值和平均值
print_max_avg(numbers, 10);
// 3. 对数组排序并打印
sort_and_print(numbers, 10);
return 0;
}
// 函数1:输入并存入数组
void input_numbers(int *arr, int n) {
int i;
for (i = 0; i < n; ++i) {
scanf("%d", arr + i);
}
}
// 函数2:计算最大值和平均值
void print_max_avg(int *arr, int n) {
int max_num = *arr, sum = 0;
for (int i = 1; i < n; ++i) {
if (arr[i] > max_num)
max_num = arr[i];
sum += arr[i];
}
printf("最大值: %d\n", max_num);
printf("平均值: %.2f\n", (float)sum / n);
}
// 函数3:冒泡排序并打印数组
void sort_and_print(int *arr, int n) {
for (int i = 0; i < n - 1; ++i) {
for (int j = 0; j < n - 1 - i; ++j) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
printf("排序后的数组:\n");
for (int i = 0; i < n; ++i) {
printf("%d ", arr[i]);
}
printf("\n");
}
阅读全文