标题 交换最大值与最小值
问题描述 将输入的一系列整数保存在数组中,然后将输入的一系列整数中的最小值与第一个数交 换,然后将最大值与最后一个数交换,最后按照交换后的顺序输出数组中的元素。
输入说明 输入数据分为两行。 第一行包含了一个整数n,表示整数系列的个数,2 ≤ n ≤ 20。 第二行包含n个整数,整数区间为[0,10000]。
输出说明 按照交换后的顺序输出数组中的元素,中间用空格分隔。
输入样例1
6
5 8 2 5 1 4
输出样例1
1 4 2 5 5 8
输入样例2
6
1 8 2 5 6 9
输出样例2
1 8 2 5 6 9
#define _CRT_SECURE_NO_WARNINGS
void swap(int* a, int* b)
{
int tmp = *a;
*a = *b;
*b = tmp;
return;
}
#include<stdio.h>
int main()
{
int n = 0;
int arr[21] = { 0 };
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
int max = arr[0];
int min = arr[0];
int pmax = 0;
int pmin = 0;
for (int i = 0; i < n; i++)
{
if (arr[i] > max)
{
max = arr[i];
pmax = i;
}
if (arr[i] < min)
{
min = arr[i];
pmin = i;
}
}
if(pmin != 0)
swap(&arr[0], &arr[pmin]);
if(pmax != 0)
swap(&arr[n - 1], &arr[pmax]);
for (int i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}
return 0;
}