C语言中在一个不重复的数组中,请将这个数组的最小数和数组第一个数交换,最大数和数组最后一个数交换
时间: 2024-05-14 09:15:27 浏览: 43
好的,这是一个比较简单的问题。首先,我们需要找到这个数组中的最小数和最大数。可以使用一个循环来遍历整个数组,找到最小数和最大数。接着,我们可以使用一个变量来保存数组的第一个数和最后一个数,然后将它们和最小数和最大数进行交换即可。
以下是一个可能的实现:
```c
#include <stdio.h>
int main() {
int arr[] = {3, 2, 8, 5, 1, 4, 7, 6};
int n = sizeof(arr) / sizeof(int);
int min = arr[0];
int max = arr[0];
int min_index = 0;
int max_index = 0;
// 找到最小数和最大数
for (int i = 1; i < n; i++) {
if (arr[i] < min) {
min = arr[i];
min_index = i;
}
if (arr[i] > max) {
max = arr[i];
max_index = i;
}
}
// 交换最小数和第一个数
int temp = arr[0];
arr[0] = min;
arr[min_index] = temp;
// 交换最大数和最后一个数
temp = arr[n-1];
arr[n-1] = max;
arr[max_index] = temp;
// 输出交换后的数组
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
1 2 8 5 4 3 7 6
```
阅读全文