gpt4 book ai didi

java - 显示空值而不是标记值

转载 作者:太空宇宙 更新时间:2023-11-04 11:23:48 27 4
gpt4 key购买 nike

我正在创建此代码,我应该提示用户最多输入 5 个整数。我应该通过要求用户输入这 5 个整数来将它们存储在数组中,直到数组已满或用户通过输入 -99 退出。然后我应该打印出数组的所有值并计算平均值。问题是,当我扫描并存储这些值时,它显示第五个数字的空值 0,而不是数字本身,并且它不会将其与总和一起计算。这是我一直在使用的代码片段:

public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
boolean cond = false;
int i = 0;
int[] number = new int[5];
double sum = 0;
do{
int num = scan.nextInt();


if(num==-99 || i==4){
for(int k=0; k<i+1; k++){
System.out.println(number[k]);
sum = sum + number[k];
}
System.out.println(sum/i);
cond = true;
}


number[i] = num;


i++;





}while(!cond);

}

这是输入:1 2 3 4 5每个数字都在单独的一行上这是输出:

run:
1
2
3
4
5
1
2
3
4
0
2.5

最佳答案

number[i] = num;

将用户输入的数字添加到数组中。如果他们输入 -99,则位置正确。然而,如果他们只是输入了全部 4 项,那么它就位于错误的位置。另外,你有它,所以它实际上除以错误的数字。像这样的东西应该有效:

public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
boolean cond = false;
int i = 0;
int[] number = new int[5];
double sum = 0;
do{
int num = scan.nextInt();
if(num!=-99){
number[i] = num;
i++;
}

if(num==-99 || i==5){
for(int k=0; k<i; k++){
System.out.println(number[k]);
sum = sum + number[k];
}
System.out.println(sum/(i));
cond = true;
}

}while(!cond);
}

另外,do while 循环真的很丑陋,你可以只用两个 for 循环就可以做到更流畅:

public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int[] number = new int[5];
double sum = 0;
int num=0,i;
for(i=0;i<5&&num!=-99;i++){
num = scan.nextInt();
number[i] = num;
}
for(int k=0;k<i;k++){
System.out.println(number[k]);
sum+=number[k];
}
System.out.println(sum/(i+1));
}

关于java - 显示空值而不是标记值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44599542/

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