这是经过评估的作业,所以请不要直接回答。
我的程序应该计算用户的等级:“通过”,“失败”或“带补偿的通过”。但是,它不会返回答案。我不知道为什么--有人能帮上忙吗?
公共类标记{ static int[] MarkCalculator =新int12;
//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;
}}
发布于 2013-11-07 00:36:26
final int[] WEIGHTING = {};
String[] results = new String[WEIGHTING.length];这里有一个问题。权重没有初始大小。
发布于 2013-11-07 00:38:56
另外:你不需要用任何东西来初始化标记。试试这个:
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);发布于 2013-11-07 00:39:29
问题是权重是空的
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);在这里,您传递的标记是空的。
编辑
你的程序不能工作的原因是因为你没有捕捉到computeMarks的结果。您应该将其存储在main内的数组中,如
String[] result = mc.computeMarks(marks);
for(int k=0;k<result.length;k++)
{
System.out.println(result[k]);
}https://stackoverflow.com/questions/19817503
复制相似问题