помогите с вычислением среднего арифметического отрицательных элементо

  • Автор темы Nadin85
  • Дата начала
N

Nadin85

Гость
#1
алгоритм понимаю, но не могу его закодировать, вот начало моей программы, отрицательные элементы найдены, теперь по столбцам нужно вычислить среднее арифметическое
Код:
void main()
{
int b;
int i;
int j;
const int iRows = 4;
const int iColumns = 5;
float fMatrix[iRows][iColumns] =
{  { 1, -2, 100, -4,  5},
{-6, -7, -8, 9, -21},
{ 2, -3, 40, -5,  60},
{10,  0, 20, 7,  27}	};

for (i = 0; i < 4; i++)
{
for (j = 0; j < 5; j++)
{
found = 0;
for (i = 0; i < n && !found; i++)
for (j = 0; j < m && !found; j++)
found = v[j] < 0;
if (found)
/* it was at i-1, j-1 */
 

SunSanych

Well-Known Member
28.06.2006
71
0
#2
Код:
void main()
{
double b; // среднее арифметическое double a не int!!!
int i;
int j;
int sum = 0; // сумма всех отрицательных элементов
int count = 0; // количество отрицательных элементов
const int iRows = 4;
const int iColumns = 5;
float fMatrix[iRows][iColumns] =
{
{ 1, -2, 100, -4,  5},
{-6, -7, -8, 9, -21},
{ 2, -3, 40, -5,  60},
{10,  0, 20, 7,  27}
};

for (i = 0; i < 4; i++)
{
for (j = 0; j < 5; j++)
{
if(fMatrix[i][j] < 0)
{
sum += fMatrix[i][j];
cnt++;
}
}
}

b = sum/cnt;
}
 
04.09.2006
2 566
2
#3
Для: SunSanych
Можно покритикую? Лучше уж так тогда:
Код:
for (i = 0; i < iRows; i++)
{
for (j = 0; j < iColumns; j++)
{
.....
}
}
Твой код находит среднее арифметическое отрицательных чисел для всей матрицы, а нужно:
<!--QuoteBegin-Nadin85+20:02:2008, 12:47 -->
<span class="vbquote">(Nadin85 @ 20:02:2008, 12:47 )</span><!--QuoteEBegin-->теперь по столбцам нужно вычислить среднее арифметическое
[snapback]98889" rel="nofollow" target="_blank[/snapback]​
[/quote]


Для: Nadin85
Ладно, тряхну стариной:
Код:
#include <iostream>

int main()
{
const int iRows = 4;
const int iColumns = 5;
float Matrix[iRows][iColumns] =
{
{ 1, -2, 100, -4,  5},
{-6, -7, -8, 9, -21},
{ 2, -3, 40, -5,  60},
{10,  0, 20, 7,  27}
};

for( int j = 0; j < iColumns; j++ )
{
double Sum = 0;
int Count = 0;
for( int i = 0; i < iRows; i++ )
{
if( Matrix[i][j] < 0 )
{
Sum += Matrix[i][j];
Count++;
}
}

double Avr = 0;
if( Count ) Avr = Sum / Count;
std::cout << "Column " << j << ", AVR = " << Avr << std::endl; 
}

return 0;
}
 

SunSanych

Well-Known Member
28.06.2006
71
0
#4
Извиняюсь, посмотрел только на название темы, про столбцы не увидел.