从键盘读入学生成绩,找出最高分, 并输出学生成绩等级
一、题目
从键盘读入学生成绩,找出最高分,并输出学生成绩等级。
成绩>=最高分-10 等级为’A’
成绩>=最高分-20 等级为’B’
成绩>=最高分-30 等级为’C’
其余等级为’D’
二、代码
import java.util.Scanner; public class arrayDemo { public static void main(String[] args) { System.out.println("请输入学生个数:"); Scanner StuNum=new Scanner(System.in);//得到一个学生的人数number int b=StuNum.nextInt();//转换成为int类型的number int[] score=new int[b];//将这个number作为数组的长度 for (int i=0;i<score.length;i++){ System.out.println("请输入第"+(i+1)+"个学生成绩:"); Scanner StuSco=new Scanner(System.in); int c=StuSco.nextInt(); score[i]=c; }//for循环将分数一个一个的赋给数组 System.out.println("这是学生的成绩:"); for (int x:score){ System.out.print(x+" "); }//遍历一遍看有没有问题 int temp=0; for (int i=1;i<score.length;i++){ for (int j=0;j<score.length-1;j++){ if (score[j]>score[j+1]){ temp=score[j]; score[j]=score[j+1]; score[j+1]=temp; } } }//这里是将数组排序,数组中最后一个元素就是最大的number System.out.println("\n这是排好序的学生成绩"); for (int bs:score){ System.out.print(bs+" "); }//将排序好的数组打印一遍,看有没有问题 int m=score[b-1];//m是最高分 System.out.println("\n成绩最高的分数是:"+m); char p; for (int s=0;s<score.length;s++){ int r=m-score[s];//r是最高分和他的差值 if (r<=10){ p='A'; }else if (r<=20){ p='B'; }else if (r<=30){ p='C'; }else { p='D'; } System.out.println("学生"+(s+1)+"的成绩是"+score[s]+",他的评级是“"+p); } } }
三、运行结果
四、总结
这道题主要点在于如何找到MaxNumbr和如何给分数做评级,MaxNumber其实可以用代码中双重for(冒泡排序)中的内层for直接找到,题目并没有说明必须按照原有顺序输出,所以对原数组进行排序,排序号后最后一个元素就是MaxNumber。对分数进行评级则采用if-else的多重判断。