这是一个关于函数的问题。给定一个能保持20个整型数据的一维数组,调用一个函数完成数组的初始化,然后调用另外一个函数对数组进行最大值和最小值的互换,并输出数组元素的最后一个元素的值。编写C代码
时间: 2024-04-15 15:27:43 浏览: 79
下面是一个示例的C代码,实现了你提出的要求:
```c
#include <stdio.h>
// 函数:初始化数组
void initArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
arr[i] = i + 1;
}
}
// 函数:交换数组最大值和最小值
void swapMaxMin(int arr[], int size) {
int maxIndex = 0;
int minIndex = 0;
// 找到最大值和最小值的下标
for (int i = 1; i < size; i++) {
if (arr[i] > arr[maxIndex]) {
maxIndex = i;
}
if (arr[i] < arr[minIndex]) {
minIndex = i;
}
}
// 交换最大值和最小值
int temp = arr[maxIndex];
arr[maxIndex] = arr[minIndex];
arr[minIndex] = temp;
}
int main() {
int arr[20];
int size = sizeof(arr) / sizeof(arr[0]);
// 初始化数组
initArray(arr, size);
// 输出初始数组
printf("初始数组:");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 交换最大值和最小值
swapMaxMin(arr, size);
// 输出交换后的数组
printf("交换后的数组:");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 输出数组最后一个元素的值
printf("数组最后一个元素的值:%d\n", arr[size-1]);
return 0;
}
```
以上代码中,我们使用了两个函数。`initArray`函数用于初始化数组,它将数组中的元素依次设置为1到20。`swapMaxMin`函数用于交换数组中的最大值和最小值,通过遍历数组找到最大值和最小值的下标,然后进行交换。在主函数中,我们先调用`initArray`函数初始化数组,然后调用`swapMaxMin`函数对数组进行最大值和最小值的互换。最后,我们输出交换后的数组以及数组最后一个元素的值。
阅读全文