为什么它没有返回任何价值?

时间:2013-11-13 12:43:37

标签: java

import java.util.Scanner;

public class MarkCalculator {

    public static int[] exam_grade = new int[6];
    public static int[] coursework_grade = new int[6];
    public static int[] coursework_weight = new int[2];
    public static int[] module_points = new int[6];
    public static String[] module_grade = new String[20];

    public static void main(String[] args) {

        Scanner input = new Scanner (System.in);

        for (int i=0; i<3; i++){

            System.out.printf(i+". Modelue"+" Enter grade of exam:");
            exam_grade[i]=input.nextInt();

            System.out.printf(i+". Modelue"+" Enter grade of coursework:");
            coursework_grade[i]=input.nextInt(); 
        }

        for(int i = 0 ;i < 3; i++){
            System.out.println(exam_grade[i]+" "+coursework_grade[i]); 
        }

        computeMark(module_points, coursework_grade, exam_grade);

        for(int i = 0 ;i < 3; i++){
            System.out.println(module_points[i]); 
        }

        input.close();
    }

    public static int[] computeMark (int coursework_grade[], int exam_grade[], int             module_points[]){

        coursework_weight[0]= 50;
        coursework_weight[1]= 50;

        for(int i=0;i<3;i++){

            if (coursework_grade[i] < 35 || exam_grade[i] < 35){
                module_points[i]=((coursework_grade[i]*coursework_weight[0] +     (exam_grade[i]*(100-coursework_weight[1])))/100);
            }
        }

        return module_points;

    }

}

我想知道为什么它不会返回任何价值。几天前函数module_points工作了,现在我找不到任何错误。输出始终为0。任何人都可以帮忙吗?谢谢。我打赌这只是一些简单的事情,但实际上还是坚持了。我需要做的是:基于输入(coursework_grade和exam_grade)计算module_points(给出公式),将这些值存储在数组中并将此数组返回到此数组显示的main方法。谢谢你的帮助。

3 个答案:

答案 0 :(得分:0)

我猜你的0除以100。将module_points[]声明为double[]以获取分数值。

答案 1 :(得分:0)

您正在调用函数computeMark()而不存储返回的结果。

变化:

computeMark(module_points, coursework_grade, exam_grade);

收件人:[已编辑]

module_points = computeMark(coursework_grade, exam_grade, module_points);

答案 2 :(得分:0)

见部分:

    if (coursework_grade[i] < 35 || exam_grade[i] < 35)
    {
      module_points[i]= ......
    }

这意味着您的所有输入必须是> = 35否则将不会发生module_point数组元素的关联。