0

我有 2 个数组,每个数组包含 6 个不同的双数。添加两个数组以获得每个元素的平均值。然后产生 6 个平均数(数组 A 和数组 B 的每个元素相加然后除)现在我需要将计算出的这 6 个平均数相加,并得到这些平均数相加并除以 6 的结果。(对不起,如果我让人们感到困惑)我不知道如何开始。这是我的代码

public static void main (String [] args)
{
    double examMarks [] = {50,40,60,80,70,11};
    double courseworkmarks [] = {65,49,58,77,35,40};
    System.out.println ("These are the exam marks and the course work    marks");//First row is the exam marks, second row is the course work marks
    computeMarks (examMarks);
    computeMarks1 (courseworkmarks);
    computeResults(examMarks, courseworkmarks);
}

public static void computeMarks(double[] examMarks)
{
    for (int row=0;row<examMarks.length;row++){
        System.out.print (examMarks[row] +"\t");
    }
    System.out.println();
}
public static void computeMarks1(double[] courseworkmarks)
{
    for (int row=0;row<courseworkmarks.length;row++){
        System.out.print (courseworkmarks[row] +"\t");
    }
    System.out.println();
}


public static void computeResults(double[] examMarks, double[] courseworkmarks)
{

        double avgMarks[] =new double[examMarks.length];
        System.out.println ("The total average of each module is ");
        for(int i=0;i<avgMarks.length;i++){
            int cwWeighting=40;
            avgMarks[i]=(examMarks[i]*(100-cwWeighting)+courseworkmarks[i]*cwWeighting)/100;

            System.out.print(avgMarks[i] + "\t" );
        }
}

这是我迄今为止尝试过的:

 public static computeStageMarks()
        {
            double totalMarks;
            totalMarks = (avgMarks [])/6;
            if (totalMarks<35)
            {
                System.out.println ("Failed" + totalMarks);
            }
            if (totalMarks>=40)
            {
                System.out.println ("Passed" + totalMarks);
            }
            if (totalMarks==35)
            {
                System.out.println ("Passed by compensation" + totalMarks);
            }

但它不会工作。== 适合这种情况吗?我还需要它从最后一种方法中识别 avgMark。我该怎么做呢?

4

3 回答 3

0

avgMarks在此方法中使用 ,您需要将其作为参数传递。

public static computeStageMarks(double[] avgMarks)

还有m要计算平均值,你需要遍历数组,计算总和然后计算平均值。

double totalMarks;
double sum = 0.0;
for(double avg : avgMarks ){
    sum += avg;
}
totalMarks = sum/6.0;
于 2013-11-08T07:12:29.237 回答
0

第一个问题:6个数字的平均值

你不能使用这样的数组:

totalMarks = (avgMarks [])/6;

你要做的是

double totalMarks = 0;

然后遍历数组,将所有分数一一相加totalMarks,然后将结果除以 6。

第二个问题:如何处理最后一种方法的结果:

例如,这将起作用:

private static double[] computeAverages() {
  double[] res = new double[6];
  // work with it
  return res;
}

private static void doStuff() {
  double[] averages = computeAverages();
  // now you can use it
}

第三个问题:双打和 == 运算符

不要用那个。使用双打的典型方法是这样运行的:

if (value < 35) {
  // ...
} else if (value < 40) {
  // ...
} else {
  // ...
}
于 2013-11-08T07:12:53.640 回答
0

您需要将 avgMarks 作为参数传递给函数

public static computeStageMarks(double[] avgMarks)
    {
        double totalMarks;

然后像这样计算totalMarks

        for(int i=0;i<avgMarks.length;i++)
        {
           totalMarks += avgMarks [i];
        }
        totalMarks = totalMarks/6;

然后继续

        if (totalMarks<35)
        {
            System.out.println ("Failed" + totalMarks);
        }
        if (totalMarks>=40)
            {
                System.out.println ("Passed" + totalMarks);
            }
        if (totalMarks<40&&totalMarks>=35)
        {
            System.out.println ("Passed by compensation" + totalMarks);
        }
于 2013-11-08T07:13:39.357 回答