gpt4 book ai didi

java - 如何改变数组中元素的位置

转载 作者:太空宇宙 更新时间:2023-11-04 14:38:53 26 4
gpt4 key购买 nike

我正在编写一个程序,它从键盘获取 10 个整数,并将它们列在索引从 0-9 的数组中,并报告数组中最小数字的位置。如果最小的数字有除 0 之外的任何其他位置,则程序应该将输入的最小数字的位置与数组中第一个位置的数字交换:

import java.util.Scanner;

public class q35 {

public static void main(String args[]) {

Scanner tastatur = new Scanner(System.in);

int[] helTall = new int[10];
int input;

int lowest = Integer.MAX_VALUE;

for(int i=0;i<helTall.length;i++) {

System.out.println("Integers? ");
input = tastatur.nextInt();

if (input < lowest) {
lowest = input;
}

helTall[i] = input;

}

for (int i = 0; i < helTall.length; i++) {
helTall[0] = lowest;
System.out.println(helTall[i]);
}

System.out.println("Lowest number is " + lowest);
}
}

唯一的问题是,它不是用 helTall[0] 处的数字来改变最低数字的位置,而是完全替换序列 helTall[0]< 中的第一个数字 具有最低的 Integer,这样如果我的输入是 4 5 63 23 6 -4 7 33 23 99,那么输出将变为 -4 5 63 23 6 -4 7 33 23 99(可以看到第一个输入的数字被完全删除了),但它应该是-4 5 63 23 6 4 7 33 23 99有什么提示/建议/解决方案吗?提前致谢。

最佳答案

您应该跟踪最低数字的索引(每次编写 lowest = input; 时,您都应该添加 lowestIndex=i;
那么 helTall[lowestIndex] 将是最低的数字。
因此,您可以将 helTall[lowestIndex]helTall[0] 交换,而不是仅仅覆盖 helTall[0] 的值。

我认为用文字描述解决方案就足够了,但我想这还不够......

int lowest = Integer.MAX_VALUE;
int lowestIndex = 0;
for(int i=0;i<helTall.length;i++){
System.out.println("Integers? ");
input = tastatur.nextInt();
if (input < lowest){
lowest = input;
lowestIndex = i;
}
helTall[i]=input;
}
// swap the numbers
if (lowestIndex > 0) {
int temp = lowest;
helTall[lowestIndex] = helTall[0];
helTall[0] = temp;
}
// display output
for (int i = 0; i < helTall.length; i ++) {
System.out.println(helTall[i]);
}

关于java - 如何改变数组中元素的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25212740/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com