Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 10.06.2014
Сообщений: 11
1

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

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

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

В части матрицы, расположенной под вспомогательной диагональю, найти столбик, в котором среднее арифметическое значение, найденное из положительных элементов имеет минимальное значение.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.06.2014, 20:18
Ответы с готовыми решениями:

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

В массиве найти минимальное, максимальное и среднее арифметическое значение элементов
В массиве А найти минимальное, максимальное и среднее арифметическое значение элементов. Значение...

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

Найти среднее арифметическое элементов массива х(n), исключив из них максимальное и минимальное значение
Найти среднее арифметическое элементов массива х(n), исключив из них максимальное и минимальное...

6
105 / 86 / 13
Регистрация: 29.08.2012
Сообщений: 539
11.06.2014, 20:39 2
Для каждого столбца под вспомогательной диагональю находите сумму всех положительных элментов. Затем выбираете столюец с минимальной суммой.
0
835 / 493 / 325
Регистрация: 29.12.2009
Сообщений: 1,106
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
0 / 0 / 0
Регистрация: 10.06.2014
Сообщений: 11
11.06.2014, 21:38  [ТС] 4
почему-то не работает
0
271 / 265 / 146
Регистрация: 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
Заблокирован
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
835 / 493 / 325
Регистрация: 29.12.2009
Сообщений: 1,106
11.06.2014, 23:32 7
Цитата Сообщение от Влад95 Посмотреть сообщение
почему-то не работает
в каком месте?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.06.2014, 23:32

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Найти среднее значение элементов массива, минимальное среди положительных значений
1. Заполнить массив случайными числами от -15 до15, найти среднее значение элементов массива,...

Найти среднее арифметическое значение положительных элементов матрицы
Дан вещественный массив А. Найти среднее арифметическое значение положительных элементов массива А....

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

Найти среднее арифметическое значение положительных элементов массива
Дан вещественный массив А. Найти среднее арифметическое значение положительных элементов массива А....


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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