我是初学者,想编个成绩转化为等级的程序.编译有错误:"AssignGrade.java": '.class' expected at line 31, column 36
"AssignGrade.java": ')' expected at line 31, column 48
"AssignGrade.java": '.class' expected at line 32, column 32
"AssignGrade.java": ')' expected at line 32, column 39
下面是我写的代码:
import java.io.*;
public class AssignGrade               
{
    public static void main(String args[])
    {
        int studentnum, bestnum;
        int score[];
        System.out.println("please input the number of students:");
        MyInput num = new MyInput();
        studentnum = num.readInt();
        score = new int[studentnum];
        System.out.println("please input the grade:");
        for (int i = 0; i <= studentnum; i++)//输入成绩
        {
            score[i] = num.readInt();            bestnum = order(score[],studentnum);
            grade_class(score[], best);
        }
    }
    public static int order(int a[],int n)//返回最大值
    {
        int i,best = a[0];
        for( i = 1; i<n; i++)
        {
            if(best<=a[i])
                best = a[i];
        }
        return best;
   }
   public static void grade_class(int a[] , int best)//判断等级
   {
       char garde;
       if(score>best)
       {
           if(score >= (best-10))
           {
               grade = A;
               System.out.println(grade);
           }
           else if(score >= (best-20))
           {
               grade = B;
               System.out.println(grade);
           }
           else if(score >= (best-30))
           {
               grade = C;
               System.out.println(grade);
           }
           else if(score >= (best-40))
           {
               grade = D;
               System.out.println(grade);
           }
           else 
           {
               grade = E;
               System.out.println(grade);
           }
       }
   }
}
class MyInput//输入字符串和整数
{
    public String readString()//输入字符串
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String string = new String();
        try
        {
            string = br.readLine();
        }
        catch(IOException e)
        {
            System.out.println(e);
        }
        return string;
     }
     public int readInt()//输入整数
     {
         int inputInt= Integer.parseInt(readString());
         return inputInt;
     }
}

解决方案 »

  1.   

    首先跟你说一下,一大堆的错误.
    我看不懂你写的程序,看来我有点老了,跟不上年代了。
    你还是找别人吧。兄弟。
    bestnum = order(score[],studentnum);
    grade_class(score[], best);//public static int order(int a[],int n)//
     public static void grade_class(int a[] , int best)//判断等级居然你的代码在写的时候,没有显示错误警告,你是做什么IDE啊
      

  2.   

    bestnum = order(score, studentnum);
    grade_class(score, best);
      

  3.   

    package com.test;public class AssignGrade {
    public static void main(String args[]) {
    int studentnum, bestnum;
    int score[];
    System.out.println("please input the number of students:");
    MyInput num = new MyInput();
    studentnum = num.readInt();
    score = new int[studentnum];
    System.out.println("please input the grade:");
    for (int i = 0; i < studentnum; i++)// 输入成绩
    {
    score[i] = num.readInt();// 需要对异常进行处理
    }
    bestnum = order(score, studentnum);
    grade_class(score, bestnum);
    } public static int order(int a[], int n)// 返回最大值
    {
    int i, best = a[0];
    for (i = 1; i < n; i++) {
    if (best <= a[i])
    best = a[i];
    }
    return best;
    } public static void grade_class(int a[], int best)// 判断等级
    {
    char grade;
    for (int i = 0; i < a.length; i++) {
    if (a[i] >= best) {
    grade = 'A';
    System.out.println(grade);
    break;
    } else if (a[i] >= (best - 10)) {
    grade = 'A';
    System.out.println(grade);
    break;
    } else if (a[i] >= (best - 20)) {
    grade = 'B';
    System.out.println(grade);
    break;
    } else if (a[i] >= (best - 30)) {
    grade = 'C';
    System.out.println(grade);
    break;
    } else if (a[i] >= (best - 40)) {
    grade = 'D';
    System.out.println(grade);
    break;
    } else {
    //grade = 'E';//这里加这个不知道是什么意思,你都不用return,一个成绩不管怎样都会出现两个等级
    //System.out.println(grade);
    continue;
    }
    }
    }
    }
      

  4.   

    for (int i = 0; i <= studentnum; i++)//输入成绩
    {
    score[i] = num.readInt();bestnum = order(score[],studentnum);
    grade_class(score[], best);
    }
    }这里是不是错了啊??
    应该score【】都 赋值了 在 处理吧?
      

  5.   

    bestnum = order(score[],studentnum);
    grade_class(score[], best);函数调用使用数组做参数,直接用数组名即数组地址就可以了,不能加两个方括号
    score[]是没有意义的