hdu刷题入门(1)

前言

今天bigsai陪伴我刷题,我很高兴在他的帮助下过了8道题。虽然这些题都是很基础的题,但是由于自己基础很薄弱,虽然投入了很多时间,但是觉得很值得,也想在他的陪伴下继续坚持和努力下去!

bigpian加油!

hdu2023求平均成绩

题目链接
题目描述:
在这里插入图片描述
分析
初次拿到这个题,完全没有思路,不知道它让我干嘛,觉得很复杂。后来bigsai让我读题十遍,给我分析了一下题目要求,把一个题目拆分成三小部分的小题,分别是:

  • 求n个学生平均分并输出
  • 求m个各科平均分并输出
  • 求n个学生中各科均大于平均分的学生数(之前未理解题意,后来bigsai跟我说相当于未挂科的学生数,挂科分数线为平均分)在具体的处理上,刚开始也没有思路,然后他提示我用booelan类型的参数进行判断,想了很久才理解:假设先全部科目不挂科,然后每一门进行比较,只要有一门挂科,那么该生就为挂科人,所以就将boolean置为false然后break停止跳出判断。如果boolean为true,说明为好学生总数加1.否则不进行操作。

附上ac代码为:

import java.util.Scanner;

public class Average {
   
    public static void main(String[] args) {
   
        Scanner scan = new Scanner(System.in);
        while (scan.hasNext()){
   
            int n = scan.nextInt();//学生数
            int m = scan.nextInt();//科目数
            double[][] grade = new double[n][m];
            for(int i=0;i<n;i++){
   
                for(int j=0;j<m;j++){
   
                    grade[i][j] = scan.nextDouble();
                }
            }//
            for(int i=0;i<n;i++){
   
               double sum = 0.00f,ava = 0.00f;
                for(int j=0;j<m;j++){
   
                   sum += grade[i][j];
                }
                ava = sum/m;
                if(i==n-1){
   
                    System.out.println(String.format("%.2f",ava));
                }else System.out.print(String.format("%.2f",ava)+" ");
            }
            double ave []=new double[m];//各科平均分
            for(int j=0;j<m;j++){
   
                double sum1=0.00,ava1=0.00;
                for(int i=0;i<n;i++){
   
                    sum1 +=grade[i][j];
                }
                ava1 = sum1/n;
                ave[j]=ava1;
                if(j==m-1) {
   
                    System.out.println(String.format("%.2f",ava1));
                }else System.out.print(String.format("%.2f",ava1)+" ");
            }
            int count=0;//不挂科的学生总数
            for(int i=0;i<n;i++){
   
                boolean jud=true;//假设不挂科
                //对每个学生进行判断
                for(int j=0;j<m;j++) {
   
                    if(grade[i][j]<ave[j])
                    {
   
                        jud=false
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值