/*需求
5个学生成绩,56,74,89,41,89
从键盘读入学生成绩,找出最高分,并输出学生成绩等级
成绩>= 最高分-10,等级为A
成绩>= 最高分-20,等级为B
成绩>= 最高分-30,等级为C
其余,等级为D
*/
import java.util.Scanner;
public class Array3 {
public static void main(String[]args) {
Scanner scan=new Scanner(System.in);
/*确定学生人数,既循环次数*/
System.out.println("请输入学生人数");
int num=scan.nextInt();
/*遍历学生成绩*/
int[]score=new int[num];
System.out.println("请输入"+num+"个学生成绩");
for(int i=0;i<score.length;i++);{
score[i]=scanner.nextInt(); 这里显示有两个错误:scanner can not be resolved和
i cannot be resolved to a variable
}
/*找出最高分*/
int scoremax=0;
for(int i=0;i<score.length;i++)
{ if(scoremax<score[i])
scoremax=score[i];
}
/*换算等级*/
char level;
for(int i=0;i<score.length;i++) {
if (scoremax-score[i]<=10) {
char grade='A';
}
else if(scoremax-score[i]<=20){
char grade='B';
}
else if(scoremax-score[i]<=30)
{char grade='C';}
}
else 这里显示有一个错误:syntax error on token"else",delete this token.
{char grade='D';}
System.out.println("学生"+i+"成绩为"+score[i]+",等级为:"+level);这里显示有一个错误:
i cannot be resolved to a variable
}
}
请问出错的原因是?以及如何修改?
for(int i=0;i<score.length;i++);{
score[i]=scanner.nextInt(); 这里显示有两个错误:scanner can not be resolved和
i cannot be resolved to a variable
}
你的for循环后面多了分号,
下面的错误是因为你的错误的那句话没有在你的for循环大括号内部
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
/*确定学生人数,既循环次数*/
System.out.println("请输入学生人数");
int num = scan.nextInt();
/*遍历学生成绩*/
int[] score = new int[num];
for(int i = 0; i < score.length; i++){
System.out.println("请输入" + (i + 1) + "个学生成绩");
score[i] = scan.nextInt();
}
/*找出最高分*/
int scoremax=0;
for(int i=0;i<score.length;i++)
{
if(scoremax<score[i]){
scoremax=score[i];
}
}
/*换算等级*/
char level = 1;
for(int i=0;i<score.length;i++) {
if (scoremax-score[i]<=10) {
level='A';
}else if(scoremax-score[i]<=20){
level='B';
}
else if(scoremax-score[i]<=30){
level='C';
}else {
level='D';
}
System.out.println("学生"+i+"成绩为"+score[i]+",等级为:" + level);
}
}