2015-11-17 7 views
0

Это для Java. Я только что закончил синтаксический разбор каждого столбца от String до int. Однако сейчас мне сложно определить, как рассчитать каждый столбец и найти среднее значение.Вычисление среднего после целых чисел анализа

Например, это то, что я после того, как я проанализирован каждый столбец:

int Q1 = Integer.parseInt(columns[1]); 

Это то, что я пытался найти среднее, но безуспешно.

int Q1s = Q1; 


     int i; 
     int total = 0; 

     for (i = 0; i < 6; i++) { 
      total = total + Q1s; 
     } 

     double avg = total/Q1s; 
     return avg; 

Я знаю, как найти средний обычный способ (пример: INT Q1 [] = {1,2,3};) Но это не то же самое для разбора массива целых чисел.

Любые подсказки о том, как действовать, будем очень благодарны!

P.S. Я не хочу ответа ... Я просто хочу указать, куда идти отсюда. Вот почему я не поставил полный код, который у меня есть.

+0

почему >> двойной ср = общее/q1s; и не >> double avg = total/; ? –

+1

Ну, 'Q1s' никогда не меняется во время вашего цикла, поэтому вы просто умножаете его на 6. Если вы оставили вне код другого кода внутри цикла, то мы не можем вам помочь. Но похоже, что проблема в том, что случилось с другими 5 значениями, которые вы читали? Вы что-нибудь с ними делали? – ajb

+0

Вы начинаете с двух размерных массивов? вам нужно добавить больше кода, чтобы увидеть, что вы делаете. –

ответ

3

Ваша логика для расчета total неверна. Вы не добавляете все элементы, то, что вы делаете, это добавление первого элемента n раз.

Предполагая, что Q1 является вашим массивом Strings.

for(int i = 0; i < Q1.length; ++i) 
{ 
total += Integer.parseInt(Q1[i]);//this is what you want to do. Parse it here 
} 
double avg = (double) total/Q1.length; 
+0

Я знал, что что-то не работает, но не смог определить его. Я попробую это сейчас. Благодаря! – Sugarcoder

+1

Это все равно даст неправильный ответ без приведения типов. Int, деленный на int, даст int. –

+0

@amitdayama Я обновил его несколько секунд назад :) –

0
double avg = total/Q1s; 

Расчет среднего неправильно здесь. Он должен быть

double avg = total/6; 

Оно должно быть разделено на общее количество элементов здесь вы с использованием 6 в качестве константы.

+0

Это неправильно, потому что вы делаете целочисленное деление. – ajb

0

две вещи:

1) вы должны использовать:

double avg = total/<ColumnCount>; 

2) вам нужно литье, Так

double avg = ((double)total)/<ColumnCount>; 
Смежные вопросы