首页 > 解决方案 > 需要逻辑上的帮助以进行实际操作

问题描述

我需要帮助在哪里做这部分

“确定有多少分数高于或等于平均水平,有多少分数低于平均水平。”

谁能给出一些想法如何根据需要获得输出

例如:输入要处理的测验分数数:5

分数 1:10

分数 2:8

得分 3:9

得分 4: 2

分数 5:4

结果

=======

平均为 6.6

高于或等于平均分的次数为 3

低于平均分的分数是 2

public static void main(String[] args) {

  Scanner scanner = new Scanner(System.in);
  
  System.out.print("Enter number of quiz scores to process:");
  int totalScore=scanner.nextInt();

  int[]scoreNum= new int[totalScore];
  
  int i; 
  double total=0.0;
    
  for(i=0;i<totalScore;i++){
  System.out.printf("Score %d:", i+1 );
  scoreNum[i]=scanner.nextInt();
  total += scoreNum[i];
  }
  
  double average=total/totalScore;
  System.out.format("The Average is :%.1f\n",average); 
       

标签: java

解决方案


您的变量是在 for 循环之前声明的,因此它们在它之后也可用(在您当前打印出平均值的位置。在计算平均值之后,您可能需要另一个循环来再次遍历分数值:抄送@JuhaLahio

public static void main(String[] args) {

  Scanner scanner = new Scanner(System.in);
  
  System.out.print("Enter number of quiz scores to process:");
  int totalScore=scanner.nextInt();

  int[]scoreNum= new int[totalScore];
  
  int i; 
  double total=0.0;
    
  for(i=0;i<totalScore;i++){
  System.out.printf("Score %d:", i+1 );
  scoreNum[i]=scanner.nextInt();
  total += scoreNum[i];
  }
  
  double average=total/totalScore;
  System.out.format("The Average is :%.1f\n",average); 

  int countLesser = 0;
  int countGreater = 0;
  for (int i = 0; i < totalScore; i++) {
    if(scoreNum[i] > average) countGreater++;
    else if(scoreNum[i] < average) countLesser++;
  }
  System.out.println("Greater: " + countGreater + " Lesser: " + countGreater);

  }

推荐阅读