来源
ZJGSU OJ
描述
有一个长度为n的整数序列。请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。最大值和最小值均只有一个。
输入
输入包括两行。 第一行为正整数n(1≤n≤10)。 第二行为n个正整数组成的序列。
输出
输出转换好的序列。数据之间用一个空格隔开。最后一个数后无空格。
输入样例 1
5 5 1 2 4 3
输出样例 1
1 3 2 4 5
代码
#include<iostream>
using namespace std;
int main()
{
int n=0;
while (cin >> n) {
int* arr = new int[n];
for (int i = 0;i < n;i++ ){
cin >> arr[i];
}
int min = arr[0];
int minflag = 0;
int temp;
for (int j = 1;j < n;j++) {
if (arr[j] < arr[minflag]) {
minflag = j;
min = arr[j];
}
}
temp = arr[0];
arr[0] = min;
arr[minflag] = temp;
int max = arr[0];
int maxflag = 0;
for (int j = 1;j < n;j++) {
if (arr[j] > arr[maxflag]) {
maxflag = j;
max = arr[j];
}
}
temp = arr[n - 1];
arr[n - 1] = max;
arr[maxflag] = temp;
for (int g = 0; g < n; g++) {
cout << arr[g] << " ";
}
}
}