2013-11-08 4 views
0

У меня есть 2 массива, каждый массив содержит 6 разных двойных чисел. оба массива добавляются, чтобы получить среднее значение от каждого элемента. затем создаются 6 средних чисел (каждый элемент массива A и массив B добавляются, а затем разделяются) теперь мне нужно добавить эти 6 средних чисел, которые были рассчитаны, и получить результат этих средних чисел, добавленных и деленных на 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"); 
     } 
} 

это то, что я пытался до сих пор:

, но это не будет работать. является правильным для этого случая? также мне нужно, чтобы он распознал avgMark из последнего метода. Как мне это сделать?

+0

мне нужно сделать новый двойной для totalMarks? – rockodile

+1

Я думаю, вы хотите '> =' not '=='. Но как это отличается от прошлого, когда вы задавали этот вопрос? –

+0

Как вы вычисляете totalMarks? –

ответ

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 вопроса : doubleles and == operator

Не используйте это. Типичный способ работы с двойниками будет работать так:

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

Чтобы использовать avgMarks в этом методе, вам необходимо передать это как параметр.

public static computeStageMarks(double[] avgMarks) 

И alsom для вычисления среднего, вам нужно перебрать массив, вычислить сумму, а затем вычислить среднее значение.

double totalMarks; 
double sum = 0.0; 
for(double avg : avgMarks){ 
    sum += avg; 
} 
totalMarks = sum/6.0; 
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); 
     } 
+0

И если totalMarks равняется 35,5? Нет выхода. –

+0

Спасибо! сделал коррекцию –

+0

спасибо, он должен работать, вот что я пробовал раньше, просто не мог вспомнить, как передать метод avghMarks как prameter. большое спасибо. плохо попробуйте сейчас – rockodile

Смежные вопросы