gpt4 book ai didi

java - 如何根据用户输入将数组中最大的元素放在末尾,最小的元素放在开头?

转载 作者:行者123 更新时间:2023-12-02 09:14:54 24 4
gpt4 key购买 nike

我提取了数组中最大和最小的元素。我试图弄清楚如何将最大元素交换为数组中的最后一个元素,将最小元素交换为数组中的第一个数字,但这对我不起作用。我做错了什么?

import java.util.Scanner;
public class SmallestLargest
{
public static void main (String []args)
{
Scanner input = new Scanner (System.in);
int[] array1 = new int [input.nextInt()];

for (int i = 0; i < array1.length; i++)
{
array1[i] = input.nextInt();
}
int max = array1[0];
int least = array1[0];
for (int i = 0; i < array1.length; i++)
{
if(max < array1[i])
{
max = array1[i];
}
else if(least > array1[i])
{
least = array1[i];
}
}
for (int i = 0; i < array1.length; i++)
{
int x = array1[0];
array1[0] = max;
array1[array1.length-1] = x;
System.out.print(array1[i] + " ");
}

input.close();
}
}

最佳答案

这就是您所需要的,您必须跟踪最大/最小值所在的索引。

public static void main(String[] args) {

Scanner input = new Scanner(System.in);
int[] array1 = new int[input.nextInt()];
int maxIndex = -1;
int minIndex = -1;


for (int i = 0; i < array1.length; i++) {
array1[i] = input.nextInt();
}
int max = array1[0];
int least = array1[0];
for (int i = 0; i < array1.length; i++) {
if (max < array1[i]) {
max = array1[i];
maxIndex = i;
} else if (least > array1[i]) {
least = array1[i];
minIndex = i;
}
}

int temp = array1[0];
array1[0] = max;
array1[maxIndex] = temp;

temp = array1[array1.length - 1];
array1[array1.length - 1] = least;
array1[minIndex] = temp;

for(int a: array1){
System.out.println(a);
}
input.close();
}
}

关于java - 如何根据用户输入将数组中最大的元素放在末尾,最小的元素放在开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59078917/

24 4 0