假设我在数组中输入值1-10,当我尝试运行代码并打印数组的值时,元素的最大值仍为10.0,如何将该值设为0.0或完全删除它来自我的阵列? 顺便说一句,我是java和编程的新手。
import java.util.Scanner;
public class Exer20 {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
double[] judges = new double[10];
for(int a=0; a < judges.length; a++){
judges[a] = input.nextDouble();
}
double max = judges[0];
double maxIndex = 0;
double min = judges[0];
for(int x = 0; x < judges.length; x++){
if(judges[x] > max)
max = judges[x];
maxIndex = x;
}
maxIndex = 0.0;
max = 0.0;
for(double b:judges)
System.out.println(b);
}
}
答案 0 :(得分:0)
更改此行:
max = 0.0;
到
judges[maxIndex] = 0.0
设置基元类型时,它们按值复制。因此,当您更改max时,它不会影响judge数组。你必须直接操纵数组。
答案 1 :(得分:0)
由于您的问题已经声明您要按照排序顺序从1-10输入double类型数组中的值,因此数组中的最小值将位于第0个位置,数组中的最大值将位于最后位置,因此要使它们0使用以下代码片段:
judges[0]=0.0; //setting minimum to 0
judges[judges.length-1]=0.0; //setting maximum to 0
如果你的数组没有排序,那么使用任何排序逻辑按排序顺序制作它们并应用上面给出的代码片段,因为数组的排序将有助于轻松定位数组中的最小值和最大值。