C语言实验——最值
Time Limit: 1000 ms
Memory Limit: 65536 KiB
Problem Description
有一个长度为n的整数序列,其中最大值和最小值不会出现在序列的第一和最后一个位置。
请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。
请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。
Input
输入包括两行。
第一行为正整数n(1≤n≤10)。
第二行为n个正整数组成的序列。
第一行为正整数n(1≤n≤10)。
第二行为n个正整数组成的序列。
Output
输出转换好的序列。数据之间用空格隔开。
Sample Input
5 2 1 5 4 3
Sample Output
1 2 3 4 5
Hint
注意:
最大值和最小值不会出现在序列的第一和最后一个位置
Source
package leslie;
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
int a[] = new int[111], max = -1, min = 999999,n1=1,n2=1,t=1;
int n = input.nextInt();
for (int i = 0; i < n; i++) {
a[i] = input.nextInt();
}
for(int i=1;i<n-1;i++)
{
if (a[i] > max) {
max = a[i];
n1 = i;
}
if(a[i]<min)
{
min=a[i];
n2=i;
}
}
t=a[n2];
a[n2]=a[0];
a[0]=t;
t=a[n1];
a[n1]=a[n-1];
a[n-1]=t;
for(int i=0;i<n;i++)
System.out.printf("%d%c",a[i],i==n-1?'\n':' ');
input.close();
}
}