请用c语言写一串代码,并附上详细解释。代码要求为:. 先输入数组长度(长度不超过100),然后输入数组元素,先将最大的与第一个元素交换,再将最小的与最后一个元素交换,输出数组。
时间: 2023-11-02 13:02:32 浏览: 41
以下是要求的代码实现:
```c
#include <stdio.h>
int main() {
int n, i, max_index, min_index, temp;
int arr[100];
// 读入数组长度
printf("请输入数组长度:");
scanf("%d", &n);
// 读入数组元素
printf("请输入数组元素:");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 找出最大元素和最小元素的下标
max_index = 0;
min_index = n - 1;
for (i = 1; i < n; i++) {
if (arr[i] > arr[max_index]) {
max_index = i;
}
if (arr[i] < arr[min_index]) {
min_index = i;
}
}
// 将最大元素与第一个元素交换
temp = arr[0];
arr[0] = arr[max_index];
arr[max_index] = temp;
// 如果最小元素不在最后一个位置,将其与最后一个元素交换
if (min_index != n - 1) {
temp = arr[n - 1];
arr[n - 1] = arr[min_index];
arr[min_index] = temp;
}
// 输出数组
printf("交换后的数组为:");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
首先,代码中定义了变量 `n` 表示数组长度,变量 `i` 用于循环计数,变量 `max_index` 和 `min_index` 分别表示最大元素和最小元素在数组中的下标,变量 `temp` 用于交换两个元素的值。
然后,程序先读入数组长度和数组元素,使用循环从标准输入中读取每个元素的值。
接下来,程序使用循环遍历整个数组,找出最大元素和最小元素的下标。
然后,程序将最大元素与第一个元素交换,将最小元素与最后一个元素交换。这里要注意,如果最小元素已经在最后一个位置,就不需要交换了。
最后,程序输出交换后的数组。使用循环遍历整个数组,将每个元素的值依次输出到标准输出中。
这样,就完成了题目要求的交换最大值和最小值的代码实现。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)