1 / 1 / 0
Регистрация: 05.11.2016
Сообщений: 18
1

Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали(через функцию)

31.05.2017, 12:28. Показов 934. Ответов 0
Метки нет (Все метки)

Ребят, проверьте чтоб соблюдались все условия
Дана целочисленная квадратная матрица. Определить:
1) сумму элементов в тех столбцах, которые не содержат отрицательных элементов;
2) минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы.
Оформить в виде функции законченные последовательности действий. Все необходимые данные для
функций должны передаваться им в качестве параметров. Использование глобальных переменных в функциях
не допускается.

*/
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include <iostream>
#include <iomanip>
 
#ifdef max
#undef max
#endif
 
using namespace std;
int* summa(int rows, int **array);
int minimum(int rows, int **array);
int main()
{
    setlocale(LC_ALL, "RUS");
    // Ввод размерностей матрицы
    cout << "Введите количество строк(Столбцов) матрицы:";
    int  rows;
    cin >> rows;
    // Динамически размещаем матрицу
    int** array = new int*[rows];
    int* sum = new int[rows];
    // Ввод элементов матрицы построчно
    for (int i = 0; i<rows; i++)
    {
        array[i] = new int[rows];
        for (int j = 0; j<rows; j++)
        {
            cout << "A[" << i + 1 << "][" << j + 1 << "]=";
            cin >> array[i][j];
        }
    }
    // Печатаем матрицу
    cout << "Исходная матрица:" << endl;
    for (int i = 0; i<rows; i++)
    {
        for (int j = 0; j<rows; j++)cout << array[i][j] << ' ';
        cout << endl;
    }
    // Считаем сумму
 
    cout << "Минимум: " << minimum(rows, array) << endl;
    cout << "Сумма элементов в столбцах не содержащих отрицательных значений:" << endl;
    sum = summa(rows, array);
    for (int i = 0; i < rows; i++)
    {
        if (sum[i] > 0)
        {
            cout << "Столбец [" << i+1 << "]: " << sum[i] << " " << endl;
        }
    }
    // Освобождаем память
    for (int i = 0; i<rows; i++)delete[]array[i];
    delete[]array;
    // Печатаем результат
    return 0;
}
int* summa(int rows, int** array)
{
    int* sum = new int[rows];
    for (int j = 0; j<rows; j++)
    {
        bool flag = true;   // true - если нет отрицательных в столбце
        int sumincol = 0;   // сумма элементов в столбце
        for (int i = 0; i<rows; i++)
        {
            if (array[i][j]<0)
            {
                flag = false;
                break;
            }
            sumincol += array[i][j];
        }
        if (flag)
        {
            sum[j] = sumincol;
        }
    }
    return sum;
}
int minimum(int rows, int** array)
{
    int summin;
    for (int i = 0; i< rows - 1; i++)//левый верхний треугольник 
    {
        int sum = 0;
        for (int j = 0; j <= i; j++)
        {
            sum += abs(array[i - j][j]);
            //cout << sum << " " << i << ":" << j << endl;
        }
        if ((i == 0) || (summin>sum))summin = sum;
    }
    for (int i = 1; i< rows - 1; i++)//правый нижний треугольник 
    {
        int sum = 0;
        for (int j = 0; j < rows - i; j++)
        {
            sum += abs(array[i + j][rows - i - j]);
        }
        if (summin > sum)summin = sum;
    }
    if (abs(array[rows - 1][rows - 1]) < summin)
    {
        summin = abs(array[rows - 1][rows - 1]);
    }
    return summin;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2017, 12:28
Ответы с готовыми решениями:

Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы
Доброго времени суток. Помогите создать процедуру, которая найдет минимум среди сумм модулей...

Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы
Дана целочисленная квадратная матрица. Определить: 1.) сумму элементов в тех столбцах, которые не...

Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы
Помогите скорректировать код, чтобы найти минимум среди сумм модулей элементов диагоналей,...

Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы
Дана целочисленная квадратная матрица. Определить: 2) минимум среди сумм модулей элементов...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2017, 12:28
Помогаю со студенческими работами здесь

Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы
Помогите написать код! Задача: Дана целочисленная квадратная матрица. Определить минимум среди...

Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы
Код программы,который должен вычислять минимум среди сумм модулей элементов диагоналей,...

Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы.
Помогите доделать задачу до конца, пожалуйста :-) Дана целочисленная квадратная матрица....

Для заданной матрицы найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали.
Помогите разобрать в С++ нешарю: Для заданной матрицы найти минимум среди сумм модулей элементов...

Определить минимум среди сумм модулей элементов диагоналей параллельных побочной диагонали
Дана целочисленная квадратная матрица. Определить: минимум среди сумм модулей элементов диагоналей...

Минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы
Ребят, программа работает, проверьте только на чистоту кода, пожалуйста Дана целочисленная...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru