先换最小,后换最大-题解

描述

有一个长度为n的整数序列。
请写一个程序,先把序列中的最小值与第一个数交换,后把最大值与最后一个数交换。
输出转换好的序列。
注意:区分先后,先把最小值与第一个的交换,完成后,再查找最大值,与最后一个数字交换

输入描述

输入包括两行。

第一行为正整数n(1≤n≤10)。

第二行为n个正整数组成的序列。

输出描述

输出转换好的序列。数据之间用空格隔开。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <bits/stdc++.h>
using namespace std;
int main(){
int in[10];
int n,i,max,min,a,b,c,d;
cin >> n;
cin >> in[0];
max = in[0];
min = in[0];
b = 0;
c = 0;
for (i=1;i<n;i++){
cin >> in[i];
if(max<in[i]){
max=in[i];
b=i;
}
if(min >in[i]){
min=in[i];
c=i;
}
}
if(b==0 && c==n-1) {
a = in[b];
in[b]=in[c];
in[c]=a;
}else if(b==0) {
d=in[b];
in[b]=in[n-1];
in[n-1]=d;
a=in[c];
in[c]=in[0];
in[0]=a;
}else if(c == n-1) {
a=in[c];
in[c]=in[0];
in[0]=a;
d=in[b];
in[b]=in[n-1];
in[n-1]=d;
}else{
a=in[c];
in[c]=in[0];
in[0]=a;
d=in[b];
in[b]=in[n-1];
in[n-1]=d;
}
for(i=0;i<n;i++) {
cout << in[i] << " ";
}
return 0;
}


先换最小,后换最大-题解
https://chenxi-tijie.pages.dev/2025/07/先换最小,后换最大-题解/
作者
chenxi
发布于
2025年7月4日
许可协议