标题
前言
今天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