首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我不能从数组中返回值

我不能从数组中返回值
EN

Stack Overflow用户
提问于 2013-11-07 00:33:09
回答 3查看 82关注 0票数 1

这是经过评估的作业,所以请不要直接回答。

我的程序应该计算用户的等级:“通过”,“失败”或“带补偿的通过”。但是,它不会返回答案。我不知道为什么--有人能帮上忙吗?

公共类标记{ static int[] MarkCalculator =新int12;

代码语言:javascript
复制
//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;
}

}

EN

回答 3

Stack Overflow用户

发布于 2013-11-07 00:36:26

代码语言:javascript
复制
final int[] WEIGHTING = {};
String[] results = new String[WEIGHTING.length];

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

票数 3
EN

Stack Overflow用户

发布于 2013-11-07 00:38:56

另外:你不需要用任何东西来初始化标记。试试这个:

代码语言:javascript
复制
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);
票数 1
EN

Stack Overflow用户

发布于 2013-11-07 00:39:29

问题是权重是空的

代码语言:javascript
复制
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

也是

代码语言:javascript
复制
    MarkCalculator mc = new MarkCalculator();
    mc.computeMarks(marks);

在这里,您传递的标记是空的。

编辑

你的程序不能工作的原因是因为你没有捕捉到computeMarks的结果。您应该将其存储在main内的数组中,如

代码语言:javascript
复制
String[] result = mc.computeMarks(marks);

for(int k=0;k<result.length;k++)
{
    System.out.println(result[k]);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19817503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档