使用循环实现统计一组学生成绩
一、统计一组学生的总分,平均分,最高分和最低分
- 分析:如果假设有100个学生,利用其我们之前所学的知识,那我们的程序就需要声明10个变量score1,score2,…,score100,来记住每位学会的成绩,来计算平均分。
- average = 100个学生的成绩相加乘以100,这样子就会非常的麻烦,所以此时我们就用一个数组来保存100个学生的成绩,然后通过数组的索引或下标来访问每一个成绩,我们可以使用循环来处理。
一、编程实现
- 首先我们在
net.jia.p02.t07
包里创建Task07
类
package net.jia.p02.t07;
import java.util.Scanner;
public class Task07 {
public static void main(String[] args) {
double[] scores = new double[10];
double sum,averge,max,min;
Scanner sc = new Scanner(System.in);
for (int i = 0; i < scores.length; i++) {
System.out.print("scores[" + i + "] = ");
scores[i] = sc.nextDouble();
}
sum = 0;
for (int i = 0;i < scores.length;i++) {
sum = sum + scores[i];
}
averge = sum / scores.length;
max = Double.MIN_VALUE;
for (int i = 0;i < scores.length;i++) {
if (max <scores[i]) {
max = scores[i];
}
}
min = Double.MAX_VALUE;
for (int i = 0;i <scores.length;i++) {
if(min > scores[i]) {
min = scores[i];
}
}
System.out.println("sum = " + sum);
System.out.println("averge = " + averge);
System.out.println("max = " + max);
System.out.println("min = " + min);
}
}
- 运行程序查看结果
- 我们再在
net.jia.p02.t07
包里创建Task07_
类
- 我们利用增强
for
循环来遍历数组
- 接下来我们对程序进行优化,确保输入的成绩在[1,100]的范围内。
package net.jia.p02.t07;
import java.util.Scanner;
public class Task07_ {
public static void main(String[] args) {
double[] scores = new double[10];
double sum,averge,max,min;
Scanner sc = new Scanner(System.in);
for (int i = 0; i < scores.length; i++) {
while (true) {
System.out.print("scores[" + i + "] = ");
scores[i] = sc.nextDouble();
if (scores[i] > 0 && scores[i] <= 100) {
break;
} else {
System.out.println("温习提示:成绩必须在[0,100]之间!");
}
}
}
sum = 0;
for (int i = 0;i < scores.length;i++) {
sum = sum + scores[i];
}
averge = sum / scores.length;
max = Double.MIN_VALUE;
for (double score : scores) {
if (max > score) {
max = score;
}
}
min = Double.MAX_VALUE;
for (double score : scores) {
if (min > score) {
min = score;
}
}
System.out.println("sum = " + sum);
System.out.println("averge = " + averge);
System.out.println("max = " + max);
System.out.println("min = " + min);
}
}