题目:
从键盘读入学生成绩,找出最高分,并输出学生成绩的等级
成绩>=最高分-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();
}
}
运行结果:
- 总结
- i < arr.length就相当于遍历完数组,如果是 <= ,则要减1
- 做题前可以先将要完成的功能按顺序写在注释里,然后在注释下填入代码,可以使思路清晰
- 要记清数组的定义方式
静态数组:
int[] arr = new int[]{1,2,3};
动态数组:
int[] arr = new int[3];