文章目录
- 1 题目
- 2 思路
- 3 实现
1 题目
2 思路
以此比较最大值、最小值,记录最大、最小值以及其下标位置,结束遍历后,交换其位置。
3 实现
#include<iostream>
using namespace std;
int main(){
int n;
scanf("%d", &n);
int* A = new int[n];
int MinTmp = 10001;
int MaxTmp = -1;
int j = 0, k = 0;
for(int i = 0;i < n;i++){
int x;
scanf("%d", &x);
if(x > MaxTmp){
MaxTmp = x;
j = i;
}
if(x < MinTmp){
MinTmp = x;
k = i;
}
A[i] = x;
}
int tmp = A[j];
A[j] = A[k];
A[k] = tmp;
for(int i = 0;i < n;i++){
printf("%d", A[i]);
if(i != n - 1) printf(" ");
}
return 0;
}