问题 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]+" ");
}

}
}

 

转载于:https://www.cnblogs.com/xuesujun/p/11341937.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值