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

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

28.11.2017, 22:38. Показов 4854. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите скорректировать код, чтобы найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы.
Код прилагается
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
#include <iostream>
#include <cmath>
#include <ctime>
using namespace std;
int main()
{
    srand(time(NULL));
    //Выделение памяти
    int n, sumstolb = 0, i, j, min = 0, minimum = 1000;
    cout << "Enter columns and strings count" << endl;
    cin >> n;
    int **arr = new int*[n];
    for (int i = 0; i < n; i++)
    {
        arr[i] = new int[n];
    }
    //Заполнение массива
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            arr[i][j] = rand() % 100 - 25;
        }
    }
    /*for (i=0;i<n;i++)
    {
    for (j=0;j<n;j++)
    {
    cin>> arr[i][j];
    }
    }
    */
    //Вывод массива
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cout << arr[i][j] << "\t";
        }
        cout << endl;
    }
    //Нахождение суммы столбцов без отрицательных элементов
    for (int j = 0; j < n; j++)
    {
        sumstolb = 0;
        for (int i = 0; i < n; i++)
        {
            if (arr[i][j] < 0) {
                sumstolb = 0;
                break;
            }
            else sumstolb = sumstolb + arr[i][j];
        }
        if (sumstolb != 0)
            cout << j + 1 << " Column = " << sumstolb << endl;
    }
    // Нахождение минимума среди модулей сумм элементов
    for (i = n - 2, j = 0; i > 0, j < n; i--, j++)
    {
        min += (abs(arr[i][j]));
    }
    if (abs(min) < minimum)
        minimum = min;
    else min = 0;
    for (i = n - 1, j = 1; i >= 0, j < n; i--, j++)
    {
        min += (abs(arr[i][j]));
    }
    if (abs(min) < minimum)
        minimum = min;
    else min = 0;
    cout << "Minimal sum = " << minimum << endl;
    //Удаление массива
    for (int i = 0; i < n; i++)
    {
        delete[] arr[i];
    }
    delete[] arr;
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2017, 22:38
Ответы с готовыми решениями:

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

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

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

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

1
0 / 0 / 1
Регистрация: 24.11.2017
Сообщений: 10
09.12.2017, 17:39  [ТС] 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
107
108
109
110
111
112
113
114
115
116
#include <iostream>
#include <cmath>
#include <ctime>
using namespace std;
int main()
{
    srand(time(NULL));
    //Выделение памяти
    int n, h, sumstolb = 0, i, j;
    cout << "Enter columns and strings count" << endl;
    cin >> n;
    int **arr = new int*[n];
    for (int i = 0; i < n; i++)
    {
        arr[i] = new int[n];
    }
    //Заполнение массива
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            arr[i][j] = rand() % 100 - 25;
        }
    }
    /*for (i=0;i<n;i++)
    {
    for (j=0;j<n;j++)
    {
    cin>> arr[i][j];
    }
    }*/
    //Вывод массива
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cout << arr[i][j] << "\t";
        }
        cout << endl;
    }
    //Нахождение суммы столбцов без отрицательных элементов
    for (int j = 0; j < n; j++)
    {
        sumstolb = 0;
        for (int i = 0; i < n; i++)
        {
            if (arr[i][j] < 0) {
                sumstolb = 0;
                break;
            }
            else sumstolb = sumstolb + arr[i][j];
        }
        if (sumstolb != 0)
            cout << j + 1 << " Column = " << sumstolb << endl;
    }
    // Нахождение минимума среди модулей сумм элементов
    double min = .0;
    double minimum = .0;
    i = 0;
    j = n - 2;
    h = 1;
    for (int h = 1; h < n; h++)
    {
        while (j != -n)
        {
            min = min + abs(arr[i][j]);
            cout << arr[i][j] << " ";
            i++;
            j--;
            if (i == n - 1 || j == - 1)
            {
                if (minimum == 0) minimum = min;
                else if (min < minimum) minimum = min;
                cout << "|" << min << "| \n\n";
                min = 0;
                i = 0;
                j = n - 2 - h;
                break;
            }
        }
    }
    cout << " \n\n";
    i = 1;
    j = n - 1;
    h = 1;
    for (int h = 1; h < n; h++)
    {
        while (i != n)
        {
            min = min + abs(arr[i][j]);
            cout << arr[i][j] << " ";
            i++;
            j--;
            if (i == n || j == n)
            {
                if (minimum == 0) minimum = min;
                else if (min < minimum) minimum = min;
                cout << "|" << min << "| \n\n";
                min = 0;
                i = h + 1;
                j = n - 1;
                break;
            }
        }
    }
    cout << "\n\n";
    cout << " MINIMUM: " << minimum << "\n\n";
    //Удаление массива
    for (int i = 0; i < n; i++)
    {
        delete[] arr[i];
    }
    delete[] arr;
    system("pause");
    return 0;
}
0
09.12.2017, 17:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2017, 17:39
Помогаю со студенческими работами здесь

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

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

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

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


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

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

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