• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
不会投篮的邢
投篮三不沾
博客园    首页    新随笔    联系   管理    订阅  订阅

问题 1051: [编程入门]结构体之成绩统计2

题目描述
有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)
输入
学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。
输出
各门课的平均成绩 最高分的学生的数据(包括学号、姓名、3门课成绩)
样例输入
2
1 blue 90 80 70
b clan 80 70 60
样例输出
85 75 65
1 blue 90 80 70
分析:首先使用一个二维数组来保存输入的数据,因为每组数据的后三个为成绩,所以只需要把成绩转换为整数,分别相加就可以求出平均成绩,平均成绩求出后可以使用一个数组保存每个学生的成绩之和,找出总成绩的最大值,
并且记下最大值的下标,即可输出成绩最高学生的数据。

import java.util.Scanner;

public class Main{
public static void main(String args[]){
  input();
}
public static void input(){
  Scanner in = new Scanner(System.in);
  int n = in.nextInt();

  String str[][] = new String[n][5];
  int sum[] = new int[n];
  int grade1=0,grade2=0,grade3=0;
  for(int i=0;i<n;i++){
    for(int j=0;j<5;j++){
      str[i][j]=in.next();
      if(j==2){
      grade1+=Integer.parseInt(str[i][j]);
}
    else if(j==3){
      grade2+=Integer.parseInt(str[i][j]);
}
    else if(j==4){
      grade3+=Integer.parseInt(str[i][j]);
}
}
    sum[i] = Integer.parseInt(str[i][2])+Integer.parseInt(str[i][3])+Integer.parseInt(str[i][4]);
}
    int max=sum[0];
    int index=0;
    for(int i=1;i<sum.length;i++){
      if(sum[i]>max){
      max=sum[i];
      index=i;
}

}
  System.out.print(grade1/n +" "+ grade2/n + " " + grade3/n);
  System.out.println();
  for(int i=0;i<5;i++){
    System.out.print(str[index][i]+" ");
}

}
}

 
posted @ 2019-08-12 19:01  不会投篮的邢  阅读(524)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3