1993: C语言实验——最值

时间:2023-03-09 15:10:52
1993: C语言实验——最值

1993: C语言实验——最值

Time Limit: 1 Sec  Memory Limit: 64 MB
Submit: 1541  Solved: 727
[Submit][Status][Web Board]

Description

有一个长度为n的整数序列。请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。

Input

输入包括两行。 第一行为正整数n(1≤n≤10)。 第二行为n个正整数组成的序列。

Output

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

Sample Input

5
2 1 5 4 3

Sample Output

1 2 3 4 5

HINT

Source

本题应注意不是排序,而只是将最小值与第一个数交换,最大值与最后一个数交换。

找到最大值最小值对应数组中的下标,然后通过下标来解决此问题。

#include <stdio.h>
#include <stdlib.h> int main()
{
int i,n,a[10];
int k,max,min;
scanf("%d",&n);
for(i=0; i<n; i++)
scanf("%d",&a[i]);
min=max=a[0];
k=0;
for(i=0; i<n; i++)
{
if(a[i]<min)
{
min=a[i];
k=i;
}
}
a[k]=a[0];
a[0]=min;
for(i=1; i<n; i++)
{
if(a[i]>max)
{
max=a[i];
k=i;
}
} a[k]=a[n-1];
a[n-1]=max;
for(i=0; i<n; i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}