给定一个整数序列(保证每一个数字都不相同),找出其中最大和最小值所在的位置,并将最大值和最小值所在位置对调,其他数值的位置保持不变,并输出此序列。(使用C++编写
时间: 2023-05-26 14:03:20 浏览: 62
代码如下)
```
#include <stdio.h>
#define MAX_LEN 100
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int arr[MAX_LEN];
int n;
printf("Enter the length of the sequence: ");
scanf("%d", &n);
printf("Enter %d integers: ", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 找出最大值和最小值位置
int max_pos = 0, min_pos = 0;
for (int i = 1; i < n; i++) {
if (arr[i] > arr[max_pos]) {
max_pos = i;
}
if (arr[i] < arr[min_pos]) {
min_pos = i;
}
}
// 交换最大值和最小值位置
swap(&arr[max_pos], &arr[min_pos]);
// 输出序列
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```