描述
有一个长度为n的整数序列。请写一个程序,先把序列中的最小值与第一个数交换,然后最大值与最后一个数交换。输出转换好的序列。(即通过交换的方式,使最小值在数组开头,最大值在数组最后)
格式
输入格式
输入包括两行。
第一行为正整数n(1≤n≤10)。
第二行为n个正整数组成的序列。
输出格式
输出转换好的序列。数据之间用空格隔开。
样例
样例输入
5
2 1 5 4 3
样例输出
1 2 3 4 5
描述
有一个长度为n的整数序列。请写一个程序,先把序列中的最小值与第一个数交换,然后最大值与最后一个数交换。输出转换好的序列。(即通过交换的方式,使最小值在数组开头,最大值在数组最后)
格式
输入格式
输入包括两行。
第一行为正整数n(1≤n≤10)。
第二行为n个正整数组成的序列。
输出格式
输出转换好的序列。数据之间用空格隔开。
样例
样例输入
5
2 1 5 4 3
样例输出
1 2 3 4 5
你题目的解答代码如下:
#include <stdio.h>
int main()
{
int a[1000], n, k, j, max, min;
scanf("%d", &n);
for (j = 0; j < n; j++)
scanf("%d", &a[j]);
max = min = 0;
for (j = 0; j < n; j++)
{
if (a[max] < a[j])
max = j;
if (a[min] > a[j])
min = j;
}
k = a[0];
a[0] = a[min];
a[min] = k;
if (max == 0)
max = min;
k = a[n - 1];
a[n - 1] = a[max];
a[max] = k;
for (j = 0; j < n; j++)
{
printf("%d ", a[j]);
}
return 0;
}
如有帮助,望采纳!谢谢!