С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 24.04.2020
Сообщений: 74
1

Выбрать элементы матрицы большие суммы главной диагонали

06.10.2020, 08:20. Показов 2836. Ответов 2
Метки нет (Все метки)

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
#include <iostream>
#include <stdlib.h>
using namespace std;
const int n = 3;//объявление константы для количества строк
int main()
{
    setlocale(LC_ALL, "Russian");
    int a[n][n], i, j, max, b[n], s;
    cout << "Двумерный массив : \n";
    for (i = 0; i < n; i++)//перебираем номер строки
    {
        for (j = 0; j < n; j++)//перебираем номер столбца
        {
            a[i][j] = 25 - rand() % 50;//задание значения элемента массива
            cout << a[i][j] << '\t';//вывод на экран элемента массива
        }
        cout << '\n';
    }
    cout << '\n';
    s = 0;
    for (i = 0; i < n; i++)
        s += a[i][i];
    cout << "Сумма главной диагонали массива = " << s << '\n';
    cout << '\n';
    return 0;
}
Помогите дописать код
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.10.2020, 08:20
Ответы с готовыми решениями:

Выбрать элементы матрицы, которые больше суммы главной диагонали
Условие : В созданном двумерном массиве выбрать элементы, которые больше суммы главной диагонали...

В двумерном массиве выбрать элементы, которые больше суммы положительных элементов главной диагонали массива
Задача такова: &quot;в двумерном массиве выбрать элементы, которые больше суммы положительных элементов...

макс элементы матрицы располагают на главной диагонали, а элементы с гл диагонали на места максимальных
#include&lt;iostream&gt; #include&lt;conio.h&gt; using namespace std; int main() { int tmp; int...

Разместить на главной диагонали матрицы суммы элементов, лежщих на диагоналях, перпендикулярных к главной
Не могу решыть задучу.Выглядит примерно так.Создать квадратную матрицу целых чисел размером...

2
2565 / 1277 / 468
Регистрация: 08.11.2016
Сообщений: 3,525
06.10.2020, 16:22 2
SS-Borschevsky, b[n] - такого размера массива может не хватить, гарантировано хватит b[n * n - 1]. Судя по приведенному коду Вам не должно составить труда пройтись по всему массиву a и скопировать в массив b элементы больше s попутно считая количество записанных в b элементов после чего выполнить банальную пузырёвку части массива b в которой помещены отобранные элементы и вывести результат.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
06.10.2020, 17:28 3
Лучший ответ Сообщение было отмечено SS-Borschevsky как решение

Решение

если массив целочисленный, можно так:
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int n, m, k=0, sum_md=0, p=0;
    cout << "n="; cin >> n;
    cout << "m="; cin >> m;
    
      int **a = new int*[n]; 
    for (int i = 0; i < n; i++)
       a[i]=new int[m];       
    
    cout << "Matrix:\n";
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
        a[i][j]=rand()%51 - 25;
        cout << setw(4) << a[i][j] << " ";
        }
        sum_md+=a[i][i];
    cout << "\n";
    }
    
    cout << "sum main diagonal = " << sum_md << "\n";
    
    for (int i = 0; i < n; i++)    
        for (int j = 0; j < m; j++)
            if(a[i][j]>sum_md) k++;            
            
    if(k)
    {
        int *b = new int[k];
            
    for (int i = 0; i < n; i++)    
        for (int j = 0; j < m; j++)
            if(a[i][j]>sum_md) b[p++]=a[i][j];
            
    for (int i=0; i<k-1; i++)    
    for (int j=0; j<k-i-1; j++)        
      if (b[j] < b[j+1]) 
      swap(b[j], b[j+1]);        
            
    cout << "Array:\n";        
    for (int i = 0; i < k; i++)    
        cout << b[i] << " ";    
    cout << "\n";
    delete[]b;
    }
    else cout << "Elements more than " << sum_md << " are absent\n";
    
    for (int i = 0; i < n; i++)
    delete[]a[i];
    delete[]a;    
system("pause");
return 0;
}
1
06.10.2020, 17:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.10.2020, 17:28
Помогаю со студенческими работами здесь

Умножьте все элементы матрицы на максимум главной диагонали. Вывести максимум главной диагонали
Умножьте все элементы матрицы на максимум главной диагонали. Вывести максимум главной диагонали.

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

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

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

Если элементы главной диагонали образуют возрастающую последовательность, заменить элементы побочной диагонали на значения суммы элементов
Если элементы главной диагонали образуют возрастающую последовательность, заменить элементы...

Вывести элементы главной диагонали матрицы и элементы диагонали, расположенной под главной
1)Вывести элементы главной диагонали матрицы В (8,8)и элементы диагонали, расположенной под...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru