编程题02-研究生考试

题目描述:
 
 

我们知道,就计算机相关专业来说,考研有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;
			}
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_24404723/article/details/80043115