A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itheima.day5homework;

import java.util.Random;
import java.util.Scanner;

public class Test6 {

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                Random r = new Random();

                Scanner sc = new Scanner(System.in);
                System.out.println("该班级有多少组:");
                int team = sc.nextInt();
                System.out.println("每组学生的数量:");
                int number = sc.nextInt();

                int[][] arr = new int[team][number];
                random(arr);
                print(arr);

                groupBujige(arr);   
                int bujige = bujige(arr);
                System.out.println(bujige);

                groupAverage(arr);
                int average = average(arr,team,number);
                System.out.println(average);
               
                int max = maxAverage(arr);
                System.out.println(max);

        }

        public static int[][] random(int[][] arr) {
                Random r = new Random();
                for (int i = 0; i < arr.length; i++) {
                        for (int j = 0; j < arr[i].length; j++) {
                                arr[i][j] = r.nextInt(101);
                        }
                }
                return arr;
        }

        public static void print(int[][] arr) {
                for (int i = 0; i < arr.length; i++) {
                        for (int j = 0; j < arr[i].length; j++) {
                                System.out.println(arr[i][j]);
                        }
                }
        }

        public static void groupBujige(int[][] arr) {

                for (int i = 0; i < arr.length; i++) {
                        int count1 = 0;
                        for (int j = 0; j < arr[i].length; j++) {

                                if (arr[i][j] < 60) {
                                        count1++;
                                }
                        }
                        System.out.println("第" + (i + 1) + "组不及格人数为:" + count1);
                }

        }

        public static int bujige(int[][] arr) {
                int count = 0;
                for (int i = 0; i < arr.length; i++) {
                        for (int j = 0; j < arr[i].length; j++) {
                                if (arr[i][j] < 60) {
                                        count++;
                                }

                        }

                }
                return count;
        }

        public static void groupAverage(int[][] arr) {
                int average = 0;
                for (int i = 0; i < arr.length; i++) {
                        int sum = 0;

                        for (int j = 0; j < arr[i].length; j++) {
                                sum += arr[i][j];

                                average = sum / arr[i].length;
                        }
                        System.out.println("第" + (i + 1) + "平均分:" + average);
                }
        }

        public static int average(int[][] arr,int number,int team) {
                int average;
                int sum = 0;
                int i;
                int j;
                for (i = 0; i < arr.length; i++) {

                        for (j = 0; j < arr[i].length; j++) {
                                sum += arr[i][j];
                        }

                }
                average = sum / number/ team;
                return average;
        }
       
        public static int maxAverage(int[][] arr) {
                int average = 0;
                int max =0;
                for (int i = 0; i < arr.length; i++) {
                        int sum = 0;

                        for (int j = 0; j < arr[i].length; j++) {
                                sum += arr[i][j];

                                average = sum / arr[i].length;
                        }
                        if(max<average) {
                                max= average;
                        }
                }
                return max;
        }
}

二维数组与方法结合的复杂情况:
该题目的需求是:
        1.基础班考试要进行分组,键盘录入该班级总共多少组?以及每组的学生数量?
        2.根据录入的组数及每组学员的数量创建二维数组
        3.利用随机数产生0-100的成绩(包含0和100)
        4.要求:
                (1)打印该班级中每组的不及格人数
                (2)打印该班级中每组的平均分
                (3)打印组的最高平均分
                (4)打印班级中的不及格人数
                (5)打印班级平均分
思路:
        键盘录入组数和学生数以二维数组的形式存储,再定义个产生随机成绩的方法random(arr),以随机成绩赋值给二维数组的值,构建打印数组的方法print(arr)显示出具体值,然后构建groupBujige(arr),bujige(arr),groupAverage(arr),average(arr,team,number),  maxAverage(arr)等方法求出该班级中每组的不及格人数, 该班级中每组的平均分, 组的最高平均分, 班级中的不及格人数, 班级平均分.
难点:
        该需求牵涉到二维数组,数组里面数据过多而且复杂,整个走的流程比较困难,哪怕想错一步,结果运行还是错误.
解决:
        该需求需要自己静下心来仔细想,不错过每一个细节,脑海里要走过该需求在计算机走的一个流程,计算机走哪一步,我们相对应的敲哪一步代码,将方法的形参对应好具体的实参,一步一步将解决需求.

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马