Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Влад95
0 / 0 / 0
Регистрация: 10.06.2014
Сообщений: 11
#1

Найти столбик, в котором среднее арифметическое значение из положительных элементов имеет минимальное значение - C++

11.06.2014, 20:18. Просмотров 413. Ответов 6
Метки нет (Все метки)

Никак не могу понять задачу, помогите написать программу, очень нужно !

В части матрицы, расположенной под вспомогательной диагональю, найти столбик, в котором среднее арифметическое значение, найденное из положительных элементов имеет минимальное значение.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2014, 20:18     Найти столбик, в котором среднее арифметическое значение из положительных элементов имеет минимальное значение
Посмотрите здесь:
C++ Массив: Определить строку, в котором среднее арифметическое положительных элементов имеет наименьшее значение
Найти среднее арифметическое, максимальное и минимальное значение, количество отрицательных и четных элементов C++
Найти среднее арифметическое значение положительных и отрицательных элементов массива C++
Найти среднее арифметическое положительных элементов, заменить на это значение пятый элемент C++
Выше спомогательной диагонали найти столбик, у котором средние арифметическое значение, найденное с плюсовых C++
C++ Определить номер подматрицы, среднее арифметическое элементов которой имеет наибольшее значение.
C++ Найти минимальное значение положительных элементов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kukurudza
105 / 86 / 6
Регистрация: 29.08.2012
Сообщений: 539
11.06.2014, 20:39     Найти столбик, в котором среднее арифметическое значение из положительных элементов имеет минимальное значение #2
Для каждого столбца под вспомогательной диагональю находите сумму всех положительных элментов. Затем выбираете столюец с минимальной суммой.
MicM
821 / 488 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
11.06.2014, 20:56     Найти столбик, в котором среднее арифметическое значение из положительных элементов имеет минимальное значение #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <climits>
 
int main ()
{
    const int n = 4;
    int a[n][n] = 
    {
        {-3,6,2,5},
        {2,-6,8,2},
        {8,9,-4,-2},
        {-1,8,6,0}
    };
    int index, min = INT_MAX;
    for (int i=1; i<n; i++)
    {
        float s = 0.0;
        int k = 0;
        for (int j=n-1; j>n-i-1; j--)
        {
            if (a[j][i] > 0)
            {
                s+=a[j][i];
                ++k;
            }
        }
        s/=k;
        if (s < min)
        {
            min = s;
            index = i;
        }
    }
    std::cout <<"Index of column: " <<index <<std::endl;
    return 0;
}
Влад95
0 / 0 / 0
Регистрация: 10.06.2014
Сообщений: 11
11.06.2014, 21:38  [ТС]     Найти столбик, в котором среднее арифметическое значение из положительных элементов имеет минимальное значение #4
почему-то не работает
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
11.06.2014, 22:53     Найти столбик, в котором среднее арифметическое значение из положительных элементов имеет минимальное значение #5
Влад95, если я правильно понял задание
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <conio.h>
 
int main()
{
    HANDLE  hConsole;
    hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    
    srand(time(0));
    int N = 0;
    std::cout << "Matrix NxN\nType N: ";
    std::cin >> N;
    while(N < 3) { std::cout << "Type N: "; std::cin >> N; }
    std::cout << std::endl;
    
    int** M = new int*[N];
    for(int i = 0; i < N; i++)
        M[i] = new int[N];
    
    for(int i = 0; i < N; i++)
    {
        for(int j = 0; j < N; j++)
        {
            M[i][j] = (rand() % 200) - 100;
            if(i + j == N - 1)
            {
                SetConsoleTextAttribute(hConsole, 14);
                std::cout << std::setw(5) << M[i][j];
            }
            else if(i + j > N - 1)
            {
                SetConsoleTextAttribute(hConsole, 2);
                std::cout << std::setw(5) << M[i][j];
            }
            else
            {
                SetConsoleTextAttribute(hConsole, 15);
                std::cout << std::setw(5) << M[i][j];
            }
        }
        std::cout << "\n\n";
    }
    
    float avg = M[N - 1][1];
    int index = 1;
 
    for(int i = 0; i < N; i++)
    {
        float temp = 0;
        int counter = 1;
        for(int j = 0; j < N; j++)
        {
            if(i + j > N - 1 && M[j][i] >= 0)
            {
                temp += M[j][i];
                counter++;
            }
        }
        if(counter > 1) --counter;
        temp /= counter;
        if((temp < avg || avg <= 0) && temp > 0)
        {
            avg = temp;
            index = i;
        }
    }
    
    SetConsoleTextAttribute(hConsole, 15);
    if(avg > 0)
    {
        std::cout << "The smallest average is: " << avg
                  << ", by column " << index + 1 << std::endl;
    }
    else
        std::cout << "Average not found\n";
    
    for(int i = 0; i < N; i++)
        delete [] M[i];
    delete [] M;
    
    std::cout << "\nOperation succeeded\n";
    getch();
    return 0;
}
Trwsdf
Заблокирован
11.06.2014, 22:55     Найти столбик, в котором среднее арифметическое значение из положительных элементов имеет минимальное значение #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    const int SIZE = 5;
    int matrix[][SIZE] = {
        {1, 2, 3, 4, 5},
        {3, 4, 2, 5, 6},
        {1, 2, 4, 5, 3},
        {3, 4, 5, 3, 2},
        {4, 3, 4, 5, 3}
    };
 
    float min = INT_MAX, count = 0, sum = 0, column = 0;
    for (int j = SIZE - 1; j >= 0; j--) {
        for (int i = SIZE - 1 - j; i < SIZE; i++)
            if (matrix[i][j] > 0) {
                sum += matrix[i][j];
                count++;
            };
        if (min > sum / count) {
            min = sum / count;
            column = j;
        };
        count = 0;
        sum = 0;
    };
    cout << column << " " << setw(6) << left << fixed << setprecision(3) << min;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2014, 23:32     Найти столбик, в котором среднее арифметическое значение из положительных элементов имеет минимальное значение
Еще ссылки по теме:
Найти непрерывный участок из 10 элементов, который имеет наибольшее среднее значение элементов C++
Найти непрерывный участок из 10 элементов, который имеет наибольшее среднее значение элементов C++
C++ Найти среднее арифметическое значение элементов массива
C++ Как найти среднее арифметическое значение элементов
Найти среднее арифметическое значение элементов заданного массива C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
MicM
821 / 488 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
11.06.2014, 23:32     Найти столбик, в котором среднее арифметическое значение из положительных элементов имеет минимальное значение #7
Цитата Сообщение от Влад95 Посмотреть сообщение
почему-то не работает
в каком месте?
Yandex
Объявления
11.06.2014, 23:32     Найти столбик, в котором среднее арифметическое значение из положительных элементов имеет минимальное значение
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru