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方法。谢谢你的帮助。
答案 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数组元素的关联。