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

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

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

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

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

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

В части матрицы, расположенной под вспомогательной диагональю, найти столбик, в котором среднее арифметическое значение, найденное из положительных элементов имеет минимальное значение.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2014, 20:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти столбик, в котором среднее арифметическое значение из положительных элементов имеет минимальное значение (C++):

Массив: Определить строку, в котором среднее арифметическое положительных элементов имеет наименьшее значение - C++
в заданной матрицы Р (4,4) определить строку, в котором среднее арифметическое положительных элементов имеет меньшее значение, вывести...

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

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

Найти среднее арифметическое значение положительных и отрицательных элементов массива - C++
Задание 2 (его или третье) Дан Массив Xi, i = 1, ..., 15. Найти среднее арифметическое значение положительных и отрицательных элементов...

Найти среднее арифметическое положительных элементов, заменить на это значение пятый элемент - C++
Доброго времени суток! Столкнулся с массивами и ничего в них не понимаю.Помоги люди добрые разобраться в них. Как решить: Одномерный...

Выше спомогательной диагонали найти столбик, у котором средние арифметическое значение, найденное с плюсовых - C++
Помогите решить задание звучит так: Выше спомогательной диагонали найти столбик, у котором средние арифметическое значение, найденное с...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kukurudza
105 / 86 / 6
Регистрация: 29.08.2012
Сообщений: 539
11.06.2014, 20:39 #2
Для каждого столбца под вспомогательной диагональю находите сумму всех положительных элментов. Затем выбираете столюец с минимальной суммой.
0
MicM
822 / 489 / 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;
}
0
Влад95
0 / 0 / 0
Регистрация: 10.06.2014
Сообщений: 11
11.06.2014, 21:38  [ТС] #4
почему-то не работает
0
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;
}
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;
0
MicM
822 / 489 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
11.06.2014, 23:32 #7
Цитата Сообщение от Влад95 Посмотреть сообщение
почему-то не работает
в каком месте?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2014, 23:32
Привет! Вот еще темы с ответами:

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

Определить номер подматрицы, среднее арифметическое элементов которой имеет наибольшее значение. - C++
Помогите пожалуйста решить задачу, очень нужно В квадратной матрице A(m,n) рассмотреть квадратные подматрицы размерностью 1, 2, ... ,...

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

Найти непрерывный участок из 10 элементов, который имеет наибольшее среднее значение элементов - C++
Нужно найти непрерывный участок из 10 элементов, который имеет наибольшее среднее значение элементов. Но без использования операции...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.06.2014, 23:32
Ответ Создать тему
Опции темы

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