生命太短暂,所以不能空手走过,你必须对某样东西倾注你的深情 —— 朱棣文
西西里岛
题目:(测试多重循环练习)统计3个班成绩情况,每个班有5名同学, 求出各个班的平均分,和所有班级的平均分[学生的成绩从键盘输入]。统计三个班及格人数,每个班有 5 个人。
过程一:import java.util.Scanner;
public class Text {
public static void main(String[] args) {
/**
* 1.统计3个班成绩情况,
* 每个班有5名同学,
* 求出各个班的平均分
* 和所有班级的平均分[学生的成绩从键盘输入]。
*/
int people;//人数
int sum = 0;//总成绩
int average = 0;//每均分
int people2;//每班人数
int sum2 = 0;//每班总成绩
int average2 = 0;//每班平均分
int people3;//每班人数
int sum3 = 0;//每班总成绩
int average3 = 0;//每班平均分
Scanner myscanner = new Scanner(System.in);
for (people = 1; people <= 5; people++) {
System.out.println("请输出1的学生成绩:");
int soce = myscanner.nextInt();
sum += soce;
average=sum/5;
}
System.out.println("1班-总和是:"+sum);
System.out.println("1班-平均数是:"+average);
Scanner myscanner2 = new Scanner(System.in);
for (people2 = 1; people2 <= 5; people2++) {
System.out.println("请输入2班的学生成绩:");
int soce2 = myscanner2.nextInt();
sum2 += soce2;
average2=sum2/5;
}
System.out.println("2班-总和是:"+sum2);
System.out.println("2班-平均数是:"+average2);
Scanner myscanner3 = new Scanner(System.in);
for (people3 = 1; people3 <= 5; people3++) {
System.out.println("请输入3班的学生成绩:");
int soce3 = myscanner3.nextInt();
sum3 += soce3;
average3=sum3/5;
}
System.out.println("3班-总和是:"+sum3);
System.out.println("3班-平均数是:"+average3);
int suoyou = (sum+sum2+sum3)/15;
System.out.println("三个班级的平均数"+suoyou);
}
}
过程二
import java.util.Scanner;
public class Text {
public static void main(String[] args) {
/**
* 1.统计3个班成绩情况,
* 每个班有5名同学,
* 求出各个班的平均分
* 和所有班级的平均分[学生的成绩从键盘输入]。
* 统计三个班及格人数,每个班有 5 个人
*/
int people;//人数
double average = 0;//每均分
double allsum = 0;//所有班级总成绩
double allaverage = 0;//所有班级总平均数
int totalNumber = 5;//班级总人数
int alltotalNumber = 3;//所有班级人数
int allpass = 0;
for (int i = 1; i <= alltotalNumber; i++) {//外循环 = 三个班级
int sum = 0;//总成绩
System.out.println("=============================");
Scanner myscanner = new Scanner(System.in);
for (people = 1; people <= totalNumber; people++) {// 小循环 = 五个学生
System.out.println("请输出" + i + "班" + people + "号学生成绩:");
Double soce = myscanner.nextDouble();
if (soce >= 60 && soce <= 100) {//判断是否及格
allpass++;//及格+1
}
System.out.println("成绩为:" + soce);
sum += soce;
average = sum / totalNumber;
}
System.out.println(i + "班-总和是 = " + sum);
System.out.println(i + "班-平均数是 = " + average);
allsum += sum;//(把sum累计到allsum)计算三个班级的总成绩
}
allaverage = allsum / (totalNumber * alltotalNumber);//计算三个班级的总和
System.out.println("三个班级总的平均数 = " + allaverage);
System.out.println("三个班级的及格人数 = " + allpass);
}
}
过程三、(细节推到-老韩)
import java.util.Scanner;
public class MulForExercise01 {
//编写一个 main 方法
public static void main(String[] args) {
//统计 3 个班成绩情况,每个班有 5 名同学,
//求出各个班的平均分和所有班级的平均分[学生的成绩从键盘输入]。
//统计三个班及格人数,每个班有 5 名同学。
//
//思路分析:
//化繁为简
//(1) 先计算一个班 , 5 个学生的成绩和平均分 , 使用 for
//1.1 创建 Scanner 对象然后,接收用户输入
//1.2 得到该班级的平均分 , 定义一个 doubel sum 把该班级 5 个学生的成绩累积
//(2) 统计 3 个班(每个班 5 个学生) 平均分
//(3) 所有班级的平均分
//3.1 定义一个变量,double totalScore 累积所有学生的成绩
//3.2 当多重循环结束后,totalScore / (3 * 5)
//(4) 统计三个班及格人数
//4.1 定义变量 int passNum = 0; 当有一个学生成绩>=60, passNum++
//4.2 如果 >= 60 passNum++
//(5) 可以优化[效率,可读性, 结构]
//创建 Scanner 对象
Scanner myScanner = new Scanner(System.in);
double totalScore = 0; //累积所有学生的成绩
int passNum = 0;//累积 及格人数
int classNum = 3; //班级个数
int stuNum = 5;//学生个数
for( int i = 1; i <= classNum; i++) {//i 表示班级
double sum = 0; //一个班级的总分
for( int j = 1; j <= stuNum; j++) {//j 表示学生
System.out.println("请数第"+i+"个班的第"+j+"个学生的成绩");
double score = myScanner.nextDouble();
//当有一个学生成绩>=60, passNum++
if(score >= 60) {
passNum++;
}
sum += score; //累积
System.out.println("成绩为" + score);
}
//因为 sum 是 5 个学生的总成绩
System.out.println("sum=" + sum + " 平均分=" + (sum / stuNum));
//把 sum 累积到 totalScore
totalScore += sum;
}
System.out.println("三个班总分="+ totalScore
+ " 平均分=" + totalScore / (classNum*stuNum));
System.out.println("及格人数=" + passNum);
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)