请用c语言写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。
时间: 2023-05-19 11:03:38 浏览: 48
以下是代码实现:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int n;
printf("请输入序列的长度:");
scanf("%d", &n);
int arr[n];
printf("请输入序列:");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
int min_index = 0, max_index = 0;
for (int i = 1; i < n; i++) {
if (arr[i] < arr[min_index]) {
min_index = i;
}
if (arr[i] > arr[max_index]) {
max_index = i;
}
}
swap(&arr[0], &arr[min_index]);
swap(&arr[n-1], &arr[max_index]);
printf("转换后的序列为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输入示例:
```
请输入序列的长度:5
请输入序列:3 5 1 4 2
```
输出示例:
```
转换后的序列为:2 5 1 4 3
```
注意,这里的代码只是一个简单的示例,实际应用中可能需要考虑更多的情况,比如序列为空、长度为1等情况。