gpt4 book ai didi

java - 为什么a[0]的输出是0而不是-1?

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

我是java数组的新手,我想当数组包含负元素时计算数组中的小元素。

class test_array {
//test_array class
public static void main(String args[]) {
int[] a = {4, 2, 99, 9, -1, 0};
int small = a[0];

for (int i = 1; i < a.length; i++) {
if(a[i]<small) {
a[0]=a[i];
a[i]=small;
}
}

System.out.println(a[0]);
}
}

最佳答案

int small = a[0];

这里你给了小 4

如果您发现一个较小的值,则您没有更改该值。相反,您将较小的值更改为该值

a[i] = small;

这个代码和小值根本没有改变。您的“小”值始终为 4。

当它比较a[5]和small(意味着0和4)时,它会传递if语句并使a[0]=a[5](给出'0')。

您仅与该算法的数组的第一个字符进行比较,但您需要将其与动态“小”值进行比较。像这样更改代码。

class test_array {
//test_array class

public static void main(String args[])
{
int[] a={4,2,99,9,-1,0};
int small=a[0];

for (int i=1;i<a.length;i++)
{
if(a[i]<small)
{
small=a[i];
}
}

System.out.println(small);
}
}

选择第一个较小的数组元素,然后进行比较。如果有任何较小的值,则将该值指定为“小”。对所有数组进行循环并找到最小值。

奖励:顺便说一句,在开始时使用简单的算法是很好的,但要知道,在困难时期,有更简单的方法来对数组进行排序并找到最小值和最大值,例如

Arrays.sort(arr);

它将对所有数组进行排序。那么 arr[0] 将是最小值,而 arr[arr.lenght-1] 将是最大值。

关于java - 为什么a[0]的输出是0而不是-1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42082411/

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