1. Мегаконкурс в апреле "Приведи друзей на codeby". Дарим деньги, подписку на журнал хакер и выдаем статус "Paid Access". Подробнее ...

    Скрыть объявление

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

Тема в разделе "Общие вопросы по С и С++", создана пользователем Nadin85, 20 фев 2008.

Наш партнер Genesis Hackspace
  1. Nadin85

    Nadin85 Гость

    алгоритм понимаю, но не могу его закодировать, вот начало моей программы, отрицательные элементы найдены, теперь по столбцам нужно вычислить среднее арифметическое
    Код (Text):
    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 */
     
  2. SunSanych

    SunSanych Well-Known Member

    Регистрация:
    28 июн 2006
    Сообщения:
    71
    Симпатии:
    0
    Код (Text):
    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;
    }
     
  3. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.566
    Симпатии:
    1
    Для: SunSanych
    Можно покритикую? Лучше уж так тогда:
    Код (Text):
    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
    Ладно, тряхну стариной:
    Код (Text):
    #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;
    }
     
  4. SunSanych

    SunSanych Well-Known Member

    Регистрация:
    28 июн 2006
    Сообщения:
    71
    Симпатии:
    0
    Извиняюсь, посмотрел только на название темы, про столбцы не увидел.
     
  5. Nadin85

    Nadin85 Гость

    Ребята, спасибо огромное за помощь!
     
Загрузка...

Поделиться этой страницей