我找不到特定问题的答案(java)[关闭]

avkwfej4  于 2023-03-28  发布在  Java
关注(0)|答案(2)|浏览(97)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

2天前关闭。
Improve this question

import java.util.Scanner;

public class SumAverage2 {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("average program");
        System.out.println("Enter multiple integers greater than or equal to 0.");
        System.out.println("Enter a negative integer to finish the entry.");
        
        boolean end = false;
        int n;
        int sum = 0;
        int count = 0;
        
        while(!end) {
            n = input.nextInt();
            if (n>=0) {
                sum = sum + n;
                count++;
            }else
                end = true;
        }
        
        double average ;
        average = (double) sum / (double) count ;
        System.out.println("Number of integers greater than 0 entered  = " + count);
        System.out.println("sum of integers = " + sum);
        System.out.printf("average = %.2f", + average);
        
        input.close();
    }

}

我在试着解决这个问题,但在某些条件下,我想要的答案得不到。
如果我进去
371 -1

平均程序
输入多个大于等于0的整数。
输入负整数完成录入。
输入的大于0的整数数= 3
整数之和= 11
平均值= 3.67

//我做了一个程序,给出了这个答案。
但是,必须满足条件“如果用户从一开始就输入负整数,则不输出总和和平均值”,但上面的代码不起作用。
如果我输入-10

平均程序
输入多个大于等于0的整数。
输入负整数完成录入。
输入的大于0的整数个数= 0
整数之和= 0****平均值= NaN

答案如上所述。
我想要的答案是//

平均程序
输入多个大于等于0的整数。
输入负整数完成录入。
输入的大于0的整数个数= 0//

我才学了两个星期的代码,所以遇到了很多困难。如果你们能帮助我,我会非常感激的。
错误答案按-10 //

平均程序
输入多个大于等于0的整数。
输入负整数完成录入。
输入的大于0的整数个数= 0
整数和= 0
平均值= NaN

正确答案按-10 //

平均程序
输入多个大于等于0的整数。
输入负整数完成录入。
输入的大于0的整数个数= 0

我想解决一个在特定条件下不起作用的问题。

noj0wjuj

noj0wjuj1#

您的count是输入的数字的数量。
将所有“打印总和和平均值”的内容 Package 在“if count〉0”中。

System.out.println("Number of integers greater than 0 entered  = " + count);
if (count > 0) {
    double average = (double) sum / (double) count;
    System.out.println("sum of integers = " + sum);
    System.out.printf("average = %.2f", + average);
}
jhdbpxl9

jhdbpxl92#

你可以添加一个布尔标志,在开始时设置为false。当n〉=0时,将标志设置为true。最后,如果标志为true,则打印平均值。

import java.util.Scanner;

public class SumAverage2 {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("average program");
        System.out.println("Enter multiple integers greater than or equal to 0.");
        System.out.println("Enter a negative integer to finish the entry.");
        
        boolean end = false;
        boolean flag = false;
        int n;
        int sum = 0;
        int count = 0;
        
        while(!end) {
            n = input.nextInt();
            if (n>=0) {
                sum = sum + n;
                count++;
                flag = true;
            }else
                end = true;
        }
        
        System.out.println("Number of integers greater than 0 entered  = " + count);
        if(flag){
           double average ;
           average = (double) sum / (double) count ;
           System.out.println("sum of integers = " + sum);
           System.out.printf("average = %.2f", + average);
        }
        input.close();
    }

}

相关问题