sun_ge_ge_ 2022-03-24 13:29 采纳率: 93.3%
浏览 25
已结题

不明白中间这段代码是什么意思 可以给解释一下么 代码复制在下面了

img

img

import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] nums = null;
nums = sc.nextLine().split(" ");
int num[] = new int[nums.length];
int i;
for(i = 0;i < num.length; i++){
num[i]=Integer.valueOf(nums[i]);
System.out.println(num[i]);
}
int min = num[0], max = num[0], flagn = 0, flagx = 0;
for(i = 0; i < num.length; i++){
if(num[i] < min){
min = num[i];
flagn = i;//求出了最小数的坐标
}
if(num[i] > max){
max = num[i];
flagx = i;//求出了最大数的坐标
}
}

    if(num[0] == min)
        flagn = flagx;
    int a = num[0];
    num[0] = max;
    num[flagx] = a;
    
    if(num[num.length - 1] != min){
        int b = num[num.length - 1];
        num[num.length - 1] = min;
        num[flagn] = b;
    }
    
    for(i = 0;i < num.length; i++){
        System.out.println(num[i]);
    }

}

}

  • 写回答

2条回答 默认 最新

  • 一般般玩 2022-03-24 13:42
    关注

    是为了满足题目要求吧,注意哈,题目要求是两点:
    1.最大元素和第一个元素互换
    2.最小元素和最后一个元素互换。

    你上面贴的代码逻辑,圈起来的那部分是为了处理,最小元素是第一个元素时的情况。
    整体逻辑:
    1.最大和第一个互换。
    2.(如果第一个元素是最小元素,则修改记录最小元素的下标为最大元素之前的位置。)
    3.最小元素和最后一个元素互换。

    你理下思路。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月1日
  • 已采纳回答 3月24日
  • 创建了问题 3月24日

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c