Java 计算嵌套循环中的平均数

Java 计算嵌套循环中的平均数,java,Java,有人知道如何计算循环中的平均值吗。每次我计算平均值时,我得到0或1。我知道我需要使用平均数=(总和)/(年薪);但我不能让它工作。提前谢谢 import java.util.Scanner; public class midterm { public static void main(String args[]) { Scanner kb = new Scanner(System.in); int max = Integer.MIN_VALUE; int min

有人知道如何计算循环中的平均值吗。每次我计算平均值时,我得到0或1。我知道我需要使用平均数=(总和)/(年薪);但我不能让它工作。提前谢谢

 import java.util.Scanner;

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

    int max = Integer.MIN_VALUE;
    int min = Integer.MAX_VALUE;
    int sum = 0;
    int average=0;
    int count = 0;
    int salary_annually = 0;

    for(int employee =1; employee <= 2; employee++)
    {
    System.out.println("Employee: " + employee);

         for(int year=1; year <= 2; year++)
         {

            System.out.println("Please Enter the Salary for Year: "  + year);
              salary_annually = kb.nextInt();

                          sum += salary_annually  ;
              if (min >= salary_annually) 
              { 
                     min = salary_annually;
              } 
             if (max <=salary_annually) 
             { 
               max = salary_annually;
              } 

            average = (sum) / (salary_annually); 


         }

          System.out.println("The average is " + average);
       System.out.println("The higher number  " + max);
       System.out.println("The the lowest number " + min);
     }

   }
  }
import java.util.Scanner;
公共课期中考试
{
公共静态void main(字符串参数[])
{
扫描仪kb=新扫描仪(System.in);
int max=整数的最小值;
int min=整数最大值;
整数和=0;
整数平均=0;
整数计数=0;
年薪=0;
对于(int employee=1;employeeChange

 average = (sum) / (salary_annually); 

改变

 average = (sum) / (salary_annually); 


我猜这里的问题是你用的是整数除法。因为总和和薪水都是整数,除法的工作原理略有不同。没有余数,因为两个整数相除会得到一个整数

例如,1/2不是您预期的.5,而是0。在进行整数运算时,任何小数都会被删除。另一个示例9/5不是1.8,而是1


如果你想要平均值,那么你可以将总和或薪水每年声明为双倍,并将平均值也声明为双倍。

我猜这里的问题是你使用的是整数除法。由于总和和薪水每年都是整数,除法的效果略有不同。除法没有余数,因为除法是两个整数s给出一个int

例如,1/2不是您预期的.5,而是0。在进行整数运算时,任何小数都会被删除。另一个示例9/5不是1.8,而是1

如果你想要平均值,那么你可以将每年的金额或薪水宣布为双倍,并将平均值宣布为双倍

  • 平均值的计算方法为:
    average=sum/count;
  • 您需要将
    计数
    变量递增,否则您将始终获得和
    算术异常/减零
  • 平均值的计算方法为:
    average=sum/count;
  • 您需要将
    计数
    变量递增,否则您将始终获得和
    算术异常/减零

  • 通过
    Average=sum/count
    计算平均值,其中平均值应为double类型

    您确实声明了变量count,但没有使用它

    import java.util.Scanner;
    
    public class Calulate {
    
    /**
     * @param args
     */
    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);
    
        int max = Integer.MIN_VALUE;
        int min = Integer.MAX_VALUE;
        int sum = 0;
        double average = 0;
        int count = 2;
        int salary_annually = 0;
    
        for (int employee = 1; employee <= 2; employee++) {
            System.out.println("Employee: " + employee);
    
            for (int year = 1; year <= count; year++) {
    
                System.out.println("Please Enter the Salary for Year: " + year);
                salary_annually = kb.nextInt();
                sum += salary_annually;
    
                if (min >= salary_annually) {
                    min = salary_annually;
                }
                if (max <= salary_annually) {
                    max = salary_annually;
                }
    
            }
    
            average = sum / count; 
    
            System.out.println("The average is " + average);
            System.out.println("The higher number  " + max);
            System.out.println("The the lowest number " + min);
        }
    
    }
    
    import java.util.Scanner;
    公共类计算{
    /**
    *@param args
    */
    公共静态void main(字符串[]args){
    扫描仪kb=新扫描仪(System.in);
    int max=整数的最小值;
    int min=整数最大值;
    整数和=0;
    双平均=0;
    整数计数=2;
    年薪=0;
    
    对于(int employee=1;employee平均值通过
    Average=sum/count
    计算,其中平均值应为double类型

    您确实声明了变量count,但没有使用它

    import java.util.Scanner;
    
    public class Calulate {
    
    /**
     * @param args
     */
    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);
    
        int max = Integer.MIN_VALUE;
        int min = Integer.MAX_VALUE;
        int sum = 0;
        double average = 0;
        int count = 2;
        int salary_annually = 0;
    
        for (int employee = 1; employee <= 2; employee++) {
            System.out.println("Employee: " + employee);
    
            for (int year = 1; year <= count; year++) {
    
                System.out.println("Please Enter the Salary for Year: " + year);
                salary_annually = kb.nextInt();
                sum += salary_annually;
    
                if (min >= salary_annually) {
                    min = salary_annually;
                }
                if (max <= salary_annually) {
                    max = salary_annually;
                }
    
            }
    
            average = sum / count; 
    
            System.out.println("The average is " + average);
            System.out.println("The higher number  " + max);
            System.out.println("The the lowest number " + min);
        }
    
    }
    
    import java.util.Scanner;
    公共类计算{
    /**
    *@param args
    */
    公共静态void main(字符串[]args){
    扫描仪kb=新扫描仪(System.in);
    int max=整数的最小值;
    int min=整数最大值;
    整数和=0;
    双平均=0;
    整数计数=2;
    年薪=0;
    
    对于(int employee=1;employee AFAIK平均值通过总和/计数计算。
    int
    值在计算前应为
    double
    (或提升为
    double
    )。平均值应在内部for循环的外部计算-
    平均值=(总和)/2;
    谢谢你的帮助。我让它工作起来了。我需要计算5年。所以我把它改为平均值=(总和)/5;您好,我刚刚发现,当我计算第二个用户的平均值时,我得到了一个不同的结果。例如,如果我为第一个用户添加这个数字10,10,10,20,20。我得到了14.0,这是正确的。但是当我为第二个用户输入相同的数字时,我得到了28.0?有什么想法吗?平均值是通过总和/计数计算的。
    int
    值在计算之前,s应该是
    double
    (或升级为
    double
    )。平均值应该在内部for循环的外部计算-
    average=(sum)/2;
    谢谢您的帮助。我已经让它工作了。我需要计算5年。所以我刚刚将它改为average=(sum)/5;您好,我刚刚发现,当我计算第二个用户的平均值时,我得到了一个不同的结果。例如,如果我为第一个用户添加这个数字10,10,10,20,20。我得到了14.0,这是正确的。但当我为第二个用户输入相同的数字时,我得到了28.0?有什么想法吗?