2015-12-11 2 views
-4

Мне нужно найти среднее значение отрицательных элементов в двумерном массиве. Это то, что я получил до сих пор:C++ среднее значение отрицательных элементов в массиве

#include <iostream> 

using namespace std; 

int main() { 
    int A[3][3]; 
    int i, j; 

    for(i = 0; i < 3; i++) 
     for(j = 0; j < 3; j++) { 
      cout << "\n A[" << i + 1 << "][" << j + 1 <<"]="; 
      cin >> A[i][j]; 
     } 

    for(i = 0; i < 3; i++) { 
     for(j = 0; j < 3; j++) 
      cout << A[i][j] << "\t"; 

     cout << "\n"; 
    } 
} 
+1

И? Вы забыли задать реальный вопрос. – NathanOliver

+2

Вы не выполняете арифметику. Вы знаете, как суммировать значения, проверять, являются ли они отрицательными, считать? –

+0

ok Я попытался найти сумму i с этим для (i = 0; i <3; i ++) sum + = A [i]; cout << сумма; – Fingolfin

ответ

0

Вы можете сделать это, например:

int negNumber = 0; 
int sum = 0; 

for (int i = 0; i < 3; ++i) { 
    for (int j = 0; j < 3; ++j) { 
    if (A[i][j] < 0) { 
     ++negNumber; // increase negatives numbers found 
     sum += A[i][j]; // add to our result the number 
    } 
    } 
} 

sum = negNumber > 0 ? sum/negNumber : sum; // we need to check if we found at least one negative number 

Я надеюсь, что это поможет, но будьте осторожны! Он вернет усеченное значение (int).

ternary operation может быть трудно undertand, так что вы можете сделать это:

if (negNumber > 0) { 
    sum /= negNumber; 
} 
+1

Следует отметить, что это возвращает усеченное среднее значение. – nwn

+0

Действительно. Поскольку это 'int array', я думал, что сумма также должна быть« целой », но было ошибкой. – Ankirama

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