题目描述 description
有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)
输入 input
学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。
输出 output
各门课的平均成绩 最高分的学生的数据(包括学号、姓名、3门课成绩)
样例输入 sample input
1 blue 90 80 70
2 clan 80 70 60
样例输出 sample output
85 75 65
1 blue 90 80 70
- 这是一段Java菜鸟费劲九牛二虎之力尽力写的很基础的代码,仅供参考
-
package compete;
public class Student {
String id;
String name;
int score1;
int score2;
int score3;
public Student() //Student类的构造方法
{
this.id=id;
this.name=name;
this.score1=score1;
this.score2=score2;
this.score3=score3;
}
public String getId()
{
return id;
}
public String getName()
{
return name;
}
public int getScore1()
{
-
return score1;
}
public int getScore2()
{
return score2;
}
public int getScore3()
{
return score3;
}
}
-
再写一个Get类
-
import java.util.Arrays;
import java.util.Scanner;
public class Get {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s=new Scanner(System.in);
int n=s.nextInt();
Student a[ ]=new Student [n]; //将每位学生基本信息按照数组类型存储起来
for(int i=0;i<n;i++)
{
a[i]=new Student(); //创建所输入的n个学生对象
a[i].id=s.next();
a[i].name=s.next();
a[i].score1=s.nextInt();
a[i].score2=s.nextInt();
a[i].score3=s.nextInt();
}
// for(int i=0;i<n;i++) //利用循环来获取学生各项信息并输出
// {
// System.out.println(a[i].getId()+" "+a[i].getName()+" "+a[i].getScore1()+" "+a[i].getScore2()+" "+a[i].getScore3());
// }
int avg1=0;
int avg2=0;
int avg3=0;
int max=0;
int count=0;
for(int j=0;j<n;j++) //求各科成绩的平均数
{ if(j>=1) //两人以上平均成绩求法
{
avg1=a[j].score1=(a[j-1].score1+a[j].score1)/2;
avg2=a[j].score2=(a[j-1].score2+a[j].score2)/2;
avg3=a[j].score3=(a[j-1].score3+a[j].score3)/2;
}
if(max<(a[j].score1+a[j].score2+a[j].score3)) // 求三科成绩最高者
{
max=a[j].score1+a[j].score2+a[j].score3;
count=j;
}
}
System.out.println(avg1 +" "+ avg2 +" "+ avg3);//输出各科成绩的平均值
System.out.println(a[count].name+" "+a[count].id+" "+a[count].score1+" "+a[count].score2+" "+a[count].score3);//输出总成最高的学生信息
}
}
其实编程也是一件有趣的事,坚持