题目描述:
我们知道,就计算机相关专业来说,考研有4门科目,分别是政治(满分100分),英语(满分100分),数学(满分150分)和专业课(满分150分)。
某校计算机专业今年录取研究生的要求是:政治、英语每门课成绩不低于60分,数学和专业课不低于90分,总成绩不低于310分。并且规定:在满足单科以及总成绩最低要求的基础上,350分以上(含350分)为公费(Gongfei),310分~349分为自费(Zifei)。
请编程判断考生的录取情况。
输入: | 样例输入: |
输入数据首先包括一个正整数N,表示有N组测试数据。每组数据包含4个正整数,分别表示考生的四门课成绩(顺序为:政治、英语、数学、专业课)你可以假设所有的分数数据都合法 | 361 62 100 12080 80 120 10055 90 130 130 |
输出: | 样例输出: |
请输出每组数据对应考生的录取情况(Fail/Zifei/Gongfei)。 | Zifei Gongfei Fail |
个人思路:
把分数按照政治、英语、数学、专业课、总分、状态存储在数组里,状态默认是最好的情况即公费。
先判断单科成绩和总分是否合格,不合格将状态设置为Fail。
然后判断总分是否小于350,是的人状态设置为Zifei。
剩余的均为Gongfei。
个人解法:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int N;
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
int[][] st = new int[N][6];
for(int i = 0;i < N;i++) {
st[i][0] = sc.nextInt();
st[i][1] = sc.nextInt();
st[i][2] = sc.nextInt();
st[i][3] = sc.nextInt();
st[i][4] = st[i][0] + st[i][1] + st[i][2] + st[i][3];
st[i][5] = 3;
}
for(int j = 0;j < N;j++) {
if(st[j][0] < 60 || st[j][1] < 60 || st[j][2] < 90 || st[j][3] < 90 || st[j][4] < 310) {
st[j][5] = 1;
continue;
}
if(st[j][4] < 350) {
st[j][5] = 2;
continue;
}
}
for(int k = 0;k < N;k++) {
switch(st[k][5]) {
case 1:
System.out.println("Fail");
break;
case 2:
System.out.println("Zifei");
break;
case 3:
System.out.println("Gongfei");
break;
}
}
}
}