首先需要说明,本代码使用的判断方式是每个学生成绩与最高学生成绩的差来判断等级
eg:最高成绩98(最高成绩等级为A)
87为B;
77为C;
67为D;
47为D;
代码如下:
import java.util.*;
public class First{
public static void main(String args[]){
Scanner ss=new Scanner(System.in);
System.out.println("Enter the number of number of stuednts:");
int number=ss.nextInt();//输入学生成绩个数
int[] score=new int[number];//存储成绩的数组
System.out.println("Enter "+number+" scores:");
for(int i=0;i< score.length;i++){
score[i]=ss.nextInt();//存入成绩
}
int max=MAX(score,number);//调用MAX方法找到最高成绩
char[] level=level(score,number,max);//调用level方法判断成绩等级
for(int i=0;i<score.length;i++){//输出
System.out.println("Student"+ i +" score is "+ score[i]+" and grade is "+level[i]);
}
}
static char[] level(int[] a,int n,int max){//判断等级方法
char[] c=new char[n];
for(int i=0;i<n;i++){//判断等级
if(a[i]>=max-20&&a[i]<max-10){
c[i]=‘B‘;
continue;
}
if(a[i]>=max-30&&a[i]<max-20){
c[i]=‘C‘;
continue;
}
if(a[i]<=max-40){
c[i]=‘D‘;
continue;
}
if(a[i]>=max-10){
c[i]=‘A‘;
}
}
return c;
}
static int MAX(int[] a,int n){//找到最大值
int[] d=new int[n];
System.arraycopy(a,0,d,0,n);//备份数组
Arrays.sort(d);//将数组升序排序,最后一个元素为最大值
return d[n-1];
}
}
运行结果:
原文地址:https://blog.51cto.com/14232799/2371393
时间: 2024-11-02 21:53:09