Java-如何只计算输入的正数
我试图找到用户输入的数字的总和和平均数,我还需要我的程序只对输入的正数求和。 它只需要计算正数和,忽略负数输入,我会把num=0还是不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,
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除法。