• PTA 7-12 交换最小值和最大值 (15分)


    本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。

    注意:题目保证最大和最小值都是唯一的。

    输入格式:

    输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。

    输出格式:

    在一行中顺序输出交换后的序列,每个整数后跟一个空格。

    输入样例:

    5
    8 2 5 1 4
    
     

    输出样例:

    1 2 5 4 8 


    作者: C课程组
    单位: 浙江大学
    时间限制: 400 ms
    内存限制: 64 MB
    代码长度限制: 16 KB

     1 import java.util.Scanner;
     2 public class Main{
     3     public static void main(String[] args) {
     4         Scanner sc=new Scanner(System.in);
     5         int n=sc.nextInt();
     6         int a[]=new int[n];
     7         a[0]=sc.nextInt();
     8         int min=a[0],in=0;
     9         int k;
    10         for(int i=1;i<n;i++){
    11             a[i]=sc.nextInt();
    12             if(min>a[i]){
    13                 min=a[i];
    14                 in=i;
    15             }
    16         }
    17         k=a[0];
    18         a[0]=a[in];
    19         a[in]=k;
    20         int max=a[0],ax=0;
    21         for(int i=1;i<n;i++){
    22             if(max<a[i]){
    23                 max=a[i];
    24                 ax=i;
    25             }
    26         }
    27         k=a[n-1];
    28         a[n-1]=a[ax];
    29         a[ax]=k;
    30         for(int i=0;i<n;i++){
    31             System.out.print(a[i]+" ");
    32         }
    33     }
    34 }//不够简洁 逻辑有些混乱 需要重新理一下 但是暂时没想到更简短的办法。

    想拥有更简洁的做法 但是还没想到。

    看似不起波澜的日复一日 会突然在某一天 让你看到坚持的意义 ​​​​
  • 相关阅读:
    CF566E Restoring Map
    CF1034D Intervals of Intervals
    CF1285F Classical?
    Java日报
    课程考核感想
    每日日报8月31日
    每日日报8月30日
    每日日报8月29日
    每日日报8月28日
    每日日报8月27日
  • 原文地址:https://www.cnblogs.com/Flyfishy/p/12250152.html
Copyright © 2020-2023  润新知