如何从6个不同的数字中获得平均数?

时间:2013-11-08 07:08:14

标签: java arrays average

我有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。我该怎么做?

3 个答案:

答案 0 :(得分:0)

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

public static computeStageMarks(double[] avgMarks)

要计算平均值,你需要迭代数组,计算总和然后计算平均值。

double totalMarks;
double sum = 0.0;
for(double avg : avgMarks ){
    sum += avg;
}
totalMarks = sum/6.0;

答案 1 :(得分: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
}

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

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

if (value < 35) {
  // ...
} else if (value < 40) {
  // ...
} else {
  // ...
}

答案 2 :(得分: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);
        }