java - 需要逻辑上的帮助以进行实际操作
问题描述
我需要帮助在哪里做这部分
“确定有多少分数高于或等于平均水平,有多少分数低于平均水平。”
谁能给出一些想法如何根据需要获得输出
例如:输入要处理的测验分数数: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);
解决方案
您的变量是在 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);
}
推荐阅读
- mysql - 如果记录存在或返回一些默认值,如何获取和 AVG?
- r - 如何使用 rvest 将文本分类到不同的列?
- kubernetes - Kubernetes + GCP TCP 负载均衡:如何为 Kubernetes 服务分配静态 IP?
- android - React Native onFocus 和 onBlur TouchableOpacity
- json - 如何将此嵌套的 json 转换为角度材料表
- android - When 2 ImageViews are declared in xml layout then there are 2 copies of drawable in memory?
- vue.js - Vue.js 使用 v-model 将数据存储为字典
- spring - Spring MVC,在本机 SELECT 查询中选择特殊列
- angular - 修改从响应接收的 DateTime 并仅显示 mat-table 中的日期
- python - 我正在尝试用海龟图形用 python 编写一个游戏,但是运动已经坏了