学生成绩根据最高分划分等级

题目:
从键盘读入学生成绩,找出最高分,并输出学生成绩的等级
成绩>=最高分-10 等级为A
成绩>=最高分-20 等级为B
成绩>=最高分-30 等级为C
其余 等级为D
提示:先读入学生人数,根据人数创建int数组,存放学生成绩

考察一维数组的使用

很多解释有在代码注释里面
代码如下:

import java.util.Scanner;
public class ArrayTest02 {
public static void main(String[] args) {
  Scanner scan = new Scanner(System.in);
  System.out.print("请输入学生人数:");
  int stu = scan.nextInt();
System.out.println("请输入学生成绩(0~100):");
  //创建数组,存储学生成绩
  int[] scores = new int[stu];
  
  int maxScore = 0;//最高分
  //给数组元素赋值
  //总结:i < arr.length就相当于遍历完数组,如果是 <= ,则要减1
  for(int i = 0;i< scores.length; i++) {
   System.out.print("第"+(i+1)+"个学生成绩:");
   scores[i] = scan.nextInt();  //注意点
   if(maxScore < scores[i]) {
    maxScore = scores[i];
   }
    }
//  //获取数组中元素最大值:最高分
//  int maxScore = 0;//最高分
//  for(int i = 0; i < scores.length;i++) {
//   if(maxScore < scores[i]) {
//    maxScore = scores[i];
//   }
//  }
  //根据每个学生成绩与最高分的差值,得到每个学生的等级,并输出等级和成绩
  //char level;
  for(int i = 0;i < scores.length;i++) {
   if(maxScore - scores[i] <= 10) {
    System.out.println("学生"+(i+1)+"的成绩等级为:A");
   }else if(maxScore - scores[i] <= 20) {
    System.out.println("学生"+(i+1)+"的成绩等级为:B");
    
   }else if(maxScore - scores[i] <= 30) {
    System.out.println("学生"+(i+1)+"的成绩等级为:C");
   }else {
    System.out.println("学生"+(i+1)+"的成绩等级为:D");
   }
  }
  
  scan.close();
  
 }
}


运行结果:
学生成绩根据最高分划分等级_第1张图片

  • 总结
  1. i < arr.length就相当于遍历完数组,如果是 <= ,则要减1
  2. 做题前可以先将要完成的功能按顺序写在注释里,然后在注释下填入代码,可以使思路清晰
  3. 要记清数组的定义方式
    静态数组:
    int[] arr = new int[]{1,2,3};
    动态数组:
    int[] arr = new int[3];

你可能感兴趣的:(学生成绩根据最高分划分等级)