C语言在main()函数中定义数组及给定输入数的个数,调用定义的函数实现输入数组中的值然后调用定义的函数输出;再调用定义函数实现最大值和最小值互换后调用被定义的函数输出
时间: 2024-03-05 11:51:15 浏览: 34
好的,您的问题是如何在C语言中定义数组并调用函数实现输入输出,以及如何实现最大值和最小值的互换并输出结果。以下是一个示例程序:
```c
#include <stdio.h>
void input_array(int arr[], int n);
void output_array(int arr[], int n);
void swap_max_min(int arr[], int n);
int find_max_index(int arr[], int n);
int find_min_index(int arr[], int n);
int main() {
int n;
printf("请输入数组长度:");
scanf("%d", &n);
int arr[n];
printf("请输入%d个整数:", n);
input_array(arr, n);
printf("原始数组为:");
output_array(arr, n);
swap_max_min(arr, n);
printf("最大值和最小值已经互换,数组为:");
output_array(arr, n);
return 0;
}
void input_array(int arr[], int n) {
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
}
void output_array(int arr[], int n) {
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
void swap_max_min(int arr[], int n) {
int max_index = find_max_index(arr, n);
int min_index = find_min_index(arr, n);
int temp = arr[max_index];
arr[max_index] = arr[min_index];
arr[min_index] = temp;
}
int find_max_index(int arr[], int n) {
int max_index = 0;
for (int i = 1; i < n; i++) {
if (arr[i] > arr[max_index]) {
max_index = i;
}
}
return max_index;
}
int find_min_index(int arr[], int n) {
int min_index = 0;
for (int i = 1; i < n; i++) {
if (arr[i] < arr[min_index]) {
min_index = i;
}
}
return min_index;
}
```
这个程序定义了一个 `input_array` 函数来输入数组,一个 `output_array` 函数来输出数组,一个 `swap_max_min` 函数来实现最大值和最小值的互换,以及两个辅助函数 `find_max_index` 和 `find_min_index` 来找到最大值和最小值的下标。在 `main` 函数中,先输入数组长度和数组元素,然后依次调用这些函数即可。