Java-如何只计算输入的正数

Java-如何只计算输入的正数,java,Java,我试图找到用户输入的数字的总和和平均数,我还需要我的程序只对输入的正数求和。 它只需要计算正数和,忽略负数输入,我会把num=0还是不 import java.util.Scanner; public class J12ForSumPos { public static void main(String[] args) { Scanner console = new Scanner(System.in); int maxNumbers, i, num,

我试图找到用户输入的数字的总和和平均数,我还需要我的程序只对输入的正数求和。 它只需要计算正数和,忽略负数输入,我会把num=0还是不

import java.util.Scanner;

public class J12ForSumPos {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);

        int maxNumbers, i, num, average;
        int sum = 0;
        System.out.print("Enter Max Numbers: ");
        maxNumbers = console.nextInt();
        System.out.println();

        for (i = 1; i <= maxNumbers; i = i + 1) {
            System.out.print("Enter Value " + i + ": ");
            num = console.nextInt();
            sum = sum + num;
        }
        average = sum / maxNumbers;

        if (sum >= 0) {
            System.out.println();
            System.out.println("Sum: " + sum);
            System.out.println();
            System.out.println("Average: " + average);
            System.out.println();
        } else {
            System.out.println("Sum is: " + sum * 0);
            System.out.println();
            System.out.println("Cannot Calculate Average - no positives entered");
        }
    }
}
import java.util.Scanner;
公共级J12 Forsumpos{
公共静态void main(字符串[]args){
扫描仪控制台=新扫描仪(System.in);
int maxNumbers,i,num,average;
整数和=0;
System.out.print(“输入最大数字:”);
maxNumbers=console.nextInt();
System.out.println();
对于(i=1;i=0){
System.out.println();
System.out.println(“总和:+Sum”);
System.out.println();
System.out.println(“平均值:+平均值”);
System.out.println();
}否则{
System.out.println(“总和为:“+Sum*0”);
System.out.println();
System.out.println(“无法计算平均值-未输入正值”);
}
}
}

您可以尝试以下方法:

Scanner console = new Scanner(System.in);

int maxNumbers = 0;
int totalSum = 0; // Sum of all numbers (positive and negative)
int totalAverage = 0; // Average of all numbers (positive and negative)
int positiveSum = 0; // Sum of all positive numbers
int positiveAverage = 0; // Average of all positive numbers
int positiveNumberCount = 0; // Amount of positive numbers entered

System.out.print("Enter Max Numbers: ");
maxNumbers = console.nextInt();
System.out.println();

for(int i=1; i<=maxNumbers; i=i+1)
{
    System.out.print("Enter Value " + i + ": ");
    int num = console.nextInt();

    if(num >= 0) {
      positiveSum = positiveSum + num;
      positiveNumberCount = positiveNumberCount + 1;
    }

    totalSum = totalSum + num;
}

positiveAverage = positiveSum / positiveNumberCount;
totalAverage = totalSum / maxNumbers;
扫描仪控制台=新扫描仪(System.in);
int maxNumbers=0;
int totalSum=0;//所有数字之和(正数和负数)
int totalAverage=0;//所有数字的平均值(正数和负数)
int positiveSum=0;//所有正数之和
int positiveAverage=0;//所有正数的平均值
int positiveEnumberCount=0;//输入的正数的数量
System.out.print(“输入最大数字:”);
maxNumbers=console.nextInt();
System.out.println();
对于(int i=1;i=0){
阳性数量=阳性数量+num;
positiveEnumberCount=positiveEnumberCount+1;
}
totalSum=totalSum+num;
}
positiveAverage=positiveSum/PositiveEnumberCount;
totalAverage=总和/最大数;

由您决定是否将0包含为正数或负数,或将其排除。在我的示例中,它被视为一个正数。

sum=sum+num
之前添加此
if(num>0)
,您还需要记录您求和的非负数的数量,以便正确计算平均值。此外,如果有一个被跳过的负值,
maxNumbers
将使平均值倾斜。为正确计算平均值而输入的正值数量使用单独的计数器变量。请注意,计数器可以是0,因此还要防止被0除法。