Java 为什么[0]的输出为0而不是-1?
我不熟悉java数组,我想在数组包含负元素时计算数组中的小元素Java 为什么[0]的输出为0而不是-1?,java,Java,我不熟悉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++) {
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]);
}
}
类测试\u数组{
//测试数组类
公共静态void main(字符串参数[]){
int[]a={4,2,99,9,-1,0};
int small=a[0];
对于(inti=1;i 如果(a[i]您不知道是要在变量“small”中保留最小的元素,还是在数组的第0个元素中保留最小的元素。您正在更改[0],但与small相比。您不知道是要在变量“small”中保留最小的元素还是在数组的第0个元素中保留最小的元素。您正在更改[0]但相比之下,小
int small = a[0];
这是你给小四的
如果找到一个较小的值,则不会更改此值。相反,您将通过以下方式将较小的值更改为此值:
a[i] = small;
此代码和小值根本不会更改。您的“小”值始终为4
当它比较[5]和small(表示0和4)时,它传递if语句并生成[0]=a[5](表示为“0”)
您使用此algoryhtm仅与数组的第一个字符进行比较,但需要将其与动态“小”值进行比较
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);
}
}
它将对所有数组进行排序。然后,arr[0]将是最小值,arr[arr.lenght-1]将是最大值
这是你给小四的
如果找到一个较小的值,则不会更改此值。相反,您将通过以下方式将较小的值更改为此值:
a[i] = small;
此代码和小值根本不会更改。您的“小”值始终为4
当它比较[5]和small(表示0和4)时,它传递if语句并生成[0]=a[5](表示为“0”)
您使用此algoryhtm仅与数组的第一个字符进行比较,但需要将其与动态“小”值进行比较
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);
}
}
它将对所有数组进行排序。然后arr[0]将是min,arr[arr.lenght-1]将是最大值。虽然有多种方法可以从数组中找到最小元素,但让我们重点关注您的方法。您的方法将最小元素带到第0个索引处。您不需要变量small
,还需要修改if条件中的代码,如下所示
if(a[i]<a[0]){
int temp = a[i];
a[i] = a[0];
a[0] = temp;
}
if(a[i]尽管有多种方法可以从数组中找到最小的元素,但让我们关注一下您的方法。您的方法将最小的元素置于第0个索引处。您不需要变量small
,还需要修改if条件中的代码,如下所示
if(a[i]<a[0]){
int temp = a[i];
a[i] = a[0];
a[0] = temp;
}
if(a[i]您的代码正在打印比较的最后一个元素
迭代1
i =1
a[1]=2
small =4
a[1]<small -> a[0] =2 a[1] -> 4
i=1
a[1]=2
小=4
a[1]a[0]=2 a[1]>4
第二次迭代
i =2
a[2]=99
small =4
a[2]<small // False
i=2
a[2]=99
小=4
a[2]4
在上一次迭代中,a[0]
将变为0,当您在循环外打印它时,它将显示0
如果要查找数组中的最小元素,请参阅
希望这有帮助。您的代码正在打印最后一个比较的元素
迭代1
i =1
a[1]=2
small =4
a[1]<small -> a[0] =2 a[1] -> 4
i=1
a[1]=2
小=4
a[1]a[0]=2 a[1]>4
第二次迭代
i =2
a[2]=99
small =4
a[2]<small // False
i=2
a[2]=99
小=4
a[2]4
在上一次迭代中,a[0]
将变为0,当您在循环外打印它时,它将显示0
如果要查找数组中的最小元素,请参阅
希望这能有所帮助。我只是尝试了一些不同的方法,希望比较起来更简单,并找到数组中最小的元素
public static void main(String args[]) {
int[] a = { 4, 2, 99, 1, -2, 0 };
Arrays.sort(a);
System.out.println(a[0]);
}
我只是尝试了一些不同的方法,希望比较起来更简单,并找到数组中最小的元素
public static void main(String args[]) {
int[] a = { 4, 2, 99, 1, -2, 0 };
Arrays.sort(a);
System.out.println(a[0]);
}
尝试if(a[i]
System.out.println(small);
@Shiv_k从数组中查找最小值有多种方法。您的方法基于在第0个索引处移动最小值,我已将您的方法包括在我的答案中,并告诉了另一种解决方案,希望它会有所帮助。尝试if(a[i]
System.out.println(small)
@Shiv_k从数组中查找最小值的方法有很多种。您的方法基于在第0个索引处移动最小值,我已将您的方法包括在我的答案中,并告诉了另一种解决方案,希望它会有所帮助。如果我们使用内置函数,可以减少代码行数,这样会更好,而且会更方便与此方法相比,如果我们使用内置函数,它可以减少代码行数,并且比此方法快得多。请告诉我此代码是否有效?请告诉我此代码是否有效?