【问题标题】:Java output the number of scores above or equal to the averageJava输出分数高于或等于平均值​​的个数
【发布时间】:2015-04-09 18:17:29
【问题描述】:

所以我有课堂作业,我必须让用户在数组中输入值,获取平均值并输出高于或等于平均值​​的分数数,以及低于平均值的分数数。

但是,我只计算了平均部分。

这是我目前所拥有的:

public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    System.out.println("Enter size of your array: ");

    int n = sc.nextInt();
    int a[] = new int[n];
    System.out.println("Enter the test scores");

    for(int i = 0; i < a.length; i++) {
        a[i] = sc.nextInt(); 
    }

    int sum = 0;

    for(int b=0; b < a.length; b++) {
        sum = sum + a[b]; 
    }

    double average = ((double)sum) / a.length;
    System.out.println("The average is"+" " + average);
}

我想在输出高于或等于平均分数的分数和低于平均分数的分数的部分获得帮助。

【问题讨论】:

  • 添加一个简单的布尔表达式。如果scores &gt; average...
  • 你可以在第二个类似的循环中使用if (a[b] &gt;= average)

标签: java


【解决方案1】:
public static void main(String[] args) {

 Scanner sc = new Scanner(System.in);

System.out.println("Enter size of your array: ");

int n = sc.nextInt();

int a[] = new int[n];

System.out.println("Enter the test scores");

for(int i = 0; i < a.length; i++)
{

  a[i] = sc.nextInt(); 

}
   int sum = 0;

        for(int b=0; b < a.length; b++){

            sum = sum + a[b]; 
        }
         double average = ((double)sum) / a.length;

       int above = 0;
       int below = 0;

       for(int b=0; b < a.length; b++){

            if ((double)a[b] > average) {
                above++;
            }
            else if ((double)a[b] < average) {
                below++;
            }
        }


        System.out.println("The average is"+" " + average);
        System.out.println("The count of numbers above average is " + above);
        System.out.println("The count of number equal to average is " + (a.length - below - above));
        System.out.println("The count of numbers below average is " + below);
    }
}

【讨论】:

    【解决方案2】:

    如果您希望输出高于平均值的每个分数,则将 System.out 行放在另一个 for 循环中,遍历数组,将每个元素与平均值进行比较。

    例子

    System.out.print("Scores Above or Equal to the Average: ");
    for(int i = 0, i < array.length, i++) {
        if (array[i] >= average) {
            System.out.print(array[i] + ", ");
        } else {}
    }
    

    如果您试图获得高于或等于平均分数的分数,基本上做同样的事情,但添加一个计数器变量

    例子

    int scoresAbove = 0;
    for(int i = 0, i < array.length, i++) {
        if (array[i] >= average) {
            scoresAbove ++;
        } else {}
    }
    System.out.print("Number of Scores Above the Average: " + scoresAbove);
    

    【讨论】:

      【解决方案3】:

      添加这样的代码块:

      int numScoresAbove = 0;
      for(int i = 0; i<a.length(); i++){
        if(a[i]>=average){
          numScoresAbove++
          }
      }
      System.out.println("Number of scores above or equal to the average: "+numScoresAbove);

      然后对小于的部分使用几乎相同的东西。

      【讨论】:

      • 这解决了您的问题吗?如果是这样,请点击“这解决了我的问题”或最佳答案的按钮,然后其他人如果有类似问题可以更轻松地找到它。
      猜你喜欢
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 2017-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多