题目描述
每门课的成绩分为A、B、C、D、F五个等级,为了计算平均绩点,规定A、B、C、D、F分别代表4分、3分、2分、1分、0分。
输入描述
有多组测试样例。每组输入数据占一行,由一个或多个大写字母组成,字母之间由空格分隔。
输出描述
每组输出结果占一行。如果输入的大写字母都在集合{A,B,C,D,F}中,则输出对应的平均绩点,结果保留两位小数。否则,输出“Unknown”。
输入样例
A B C D F B F F C C A D C E F
输出样例
2.00 1.83 Unknown
import java.text.DecimalFormat;
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Main k = new Main();
k.fun();
}
public void fun() {
Scanner scan=new Scanner(System.in);
DecimalFormat df=new DecimalFormat("0.00");
while(scan.hasNextLine()){
String s = scan.nextLine();//读取一行字符串
String a[] = s.split(" ");//分割字符串,按空格分割
int l = a.length;
double sum = 0.00;
String average;
int b = 1;
for (int i = 0; i < l;i++){
if(a[i].equals("A"))
sum += 4.00;
else if(a[i].equals("B"))
sum += 3.00;
else if(a[i].equals("C"))
sum += 2.00;
else if(a[i].equals("D"))
sum += 1.00;
else if(a[i].equals("F"))
sum += 0.00;
else
b = -1;//输入不是ABCDF的字母
}
if(b==1){
average = df.format(sum/l);//将数字转化为二位小数
System.out.println(average);
}
else
System.out.println("Unknown");
}
scan.close();
}
}