有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我无法从数组中返回值

这是评估工作,所以请不要给出一个直接的答案

我的程序应该计算用户等级:“通过”、“失败”或“通过并获得补偿”。但是,它不会返回答案。我不明白为什么——有人能帮忙吗

公共类标记计算器{ 静态整数[]标记=新整数[12]

//public static Scanner keyboard = new Scanner(System.in);
public static void main(String[] args) {
    Scanner kb = new Scanner(System.in);
    int weighting;
    int coursework;
    int exammark;

    System.out.println("Please enter course work weighting");
    marks[0]= kb.nextInt();

    System.out.println("Please enter course work mark");
    marks[1]= kb.nextInt();

    System.out.println("Please enter exam mark");
    marks[2]= kb.nextInt();


    MarkCalculator mc = new MarkCalculator();
    mc.computeMarks(marks);

}




public String[] computeMarks(int[] marks) {

    final int[] WEIGHTING = {55,66,55,44,33,44};
    String[] results = new String[WEIGHTING.length];
    for (int i = 0; i < marks.length / 2; i++) {

        int exam = marks[i];
        int cw = marks[i];
        int weight = WEIGHTING[i];
        int formula = ((cw + weight) + (exam * (100 - weight)) / 100);

        if (formula >= 40){
            results[i]="PASS";
        } else if ((formula < 39) && (formula > 35)){
            results[i]="COMPENSATION PASS";
        }else{
            results[i]="FAIL";

        }

    }

    return results;
}

}


共 (3) 个答案

  1. # 1 楼答案

    问题是权重是空的

    final int[] WEIGHTING = {}; // empty
    String[] results = new String[WEIGHTING.length];
    for (int i = 0; i < marks.length / 2; i++) {
    
        int exam = marks[i];
        int cw = marks[i];
        int weight = WEIGHTING[i]; // You cant access elements from an empty array
    

        MarkCalculator mc = new MarkCalculator();
        mc.computeMarks(marks);
    

    这是你的及格分数,是空的

    编辑

    您的程序无法运行的原因是,您无法从计算机测试中捕获结果。您应该将其存储在main中的数组中,如

    String[] result = mc.computeMarks(marks);
    
    for(int k=0;k<result.length;k++)
    {
        System.out.println(result[k]);
    }
    
  2. # 2 楼答案

    另外:您不会用任何东西初始化标记。试试这个:

    System.out.println("Please enter course work weighting");
            marks[0]= kb.nextInt();
    
            System.out.println("Please enter course work mark");
            marks[1]= kb.nextInt();
    
            System.out.println("Please enter exam mark");
            marks[2]= kb.nextInt();
    
            MarkCalculator mc = new MarkCalculator();
            mc.computeMarks(marks);
    
  3. # 3 楼答案

    final int[] WEIGHTING = {};
    String[] results = new String[WEIGHTING.length];
    

    这里有个问题。权重没有初始大小