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

Вывод двумерного массива

23.04.2020, 16:43. Показов 232. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не получается вывести матрицу (именно в конце), когда должно выполняться условие о том, что выведется та матрица, сумма элементов главной диагонали которой наибольшая. Сам код работает, сумму диагонали считает, но вот вывести массив не получается. Когда пишу: cout << matrix[i][j]; мне вылазит ошибка что i и j - не инициализированные переменные. Я там в конце вырезал эту часть кода. Вообщем, помогите написать условие, что выведется та матрица, у которой сумма элементов главной диагонали больше. Спасибо!

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
#include <iostream>
#include <ctime>
#include <locale.h>
 
using namespace std;
 
int main()
{
    setlocale(0, "Rus");
    int n;
    cout << "Введите размерность квадратной матрицы: ";
    cin  >> n;
    cout << endl;
    srand(time(0));
    cout << "Матрица №1" << endl;
    cout << endl;
    int** matrix = new int* [n];
    for (int i = 0; i < n; i++)
        matrix[i] = new int[n];
 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
 
        {
            matrix[i][j] = rand() % 100;
            cout << matrix[i][j] << "\t";
        }
        cout << endl;
    }
    cout << endl;
 
    cout << "Матрица №2" << endl;
    cout << endl;
    int** x = new int* [n];
    for (int i = 0; i < n; i++)
        x[i] = new int[n];
 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
 
        {
            x[i][j] = rand() % 100;
            cout << x[i][j] << "\t";
        }
        cout << endl;
    }
    cout << endl;
    
    int summ = 0;
    for (int i = 0; i < n; i++)
        summ += matrix[i][i];
    cout << "Сумма элементов главной диагонали первой матрицы: " << summ << endl;
    
    
    int sum = 0;
    for (int i = 0; i < n; i++)
        sum += x[i][i];
    cout << "Сумма элементов главной диагонали второй матрицы: " << sum << endl;
    cout << endl;
 
    
 
    //тут должно выполняться условие, что выведется та матрица, у которой сумма элементов главной диагонали больше.
 
 
 
 
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.04.2020, 16:43
Ответы с готовыми решениями:

Функции двумерного массива. Транспонировать матрицу через ввод вывод функции двумерного массива.
Транспонировать матрицу через ввод вывод функции двумерного массива.Сначала вывести ее,а потом...

Вывод двумерного массива
Почему идет неправильный вывод? #include &lt;iostream&gt; using namespace std; int main() { ...

Вывод двумерного массива
int myArr = { 0 }; // инициализация двумерного размером 5x5 нулями cout &lt;&lt; myArr &lt;&lt; endl;...

Вывод двумерного массива
Есть у меня код: const int x = 5; int i, j, map, map_add, bot = 8, o; bot = map; for (i =...

5
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
23.04.2020, 17:06 2
Настоятельно рекомендую писать такие программы по образцу
Образцы (шаблоны) программ для типовых задач
C++
1
2
3
4
5
6
7
8
9
10
11
//
//-------- Печать матрицы ------------------------------------------------
//
void Print( int ** M, size_t n, size_t m ) {
    for ( size_t i = 0; i < n; ++i ) {
        for ( size_t j = 0; j < m; ++j ) {
            std::cout<<M[i][j]<<' ';
        }
        std::cout<<std::endl;
    }
}

Соответственно у Вас получится
C++
1
2
3
4
 if(summ >sum)
    Print(matrix,n,n);
else
    Print(x,n,n);
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
23.04.2020, 17:25 3
не забудьте при равенстве сумм вывести соответствующее сообщение

Добавлено через 5 минут
если матрица квадратная достаточно передать один размер:
C++
1
2
3
if(summ>sum) Print(matrix,n);
else if (summ<sum) Print(x,n);
else cout << "summ=sum\n";
0
Вездепух
Эксперт CЭксперт С++
11694 / 6373 / 1723
Регистрация: 18.10.2014
Сообщений: 16,059
23.04.2020, 18:03 4
Цитата Сообщение от rOJIoC 6orA Посмотреть сообщение
Когда пишу: cout << matrix[i][j]; мне вылазит ошибка что i и j - не инициализированные переменные. Я там в конце вырезал эту часть кода.
Так не надо было вырезать. Верните ее на место. Никому тут не интересно читать рассказы про ошибки в коде, который вы "вырезали".
0
1 / 1 / 0
Регистрация: 09.03.2020
Сообщений: 49
23.04.2020, 20:43  [ТС] 5
В смысле? Вроде массив выводится так: m[i][j], а не так: m[n][n], или я в чего то не понял?
0
Вездепух
Эксперт CЭксперт С++
11694 / 6373 / 1723
Регистрация: 18.10.2014
Сообщений: 16,059
23.04.2020, 20:46 6
Цитата Сообщение от rOJIoC 6orA Посмотреть сообщение
В смысле? Вроде массив выводится так: m[i][j], а не так: m[n][n], или я в чего то не понял?
Вы о чем вообще? В функции, которую вам предоставили выводится именно M[i][j]. Где вы увидели m[n][n]?
0
23.04.2020, 20:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.04.2020, 20:46
Помогаю со студенческими работами здесь

Вывод двумерного массива
Решил попрактиковаться в работе с вложенными циклами, напоролся на проблему, которую понятия не...

Вывод двумерного массива
Здравствуйте. Подскажите пожалуйста почему следующий код - функция для вывода элемента массива - не...

Вывод двумерного массива
Ребят, подскажите, как исправить, пожалуйста! Массив 7x7 нужно, чтобы так и выводился: семь строк,...

Вывод двумерного массива
Нужно сделать вывод как на картинке. я пробовал но у меня возникли некоторые сложности ...

Вывод двумерного массива в консоль
проблема: есть массив, заполненный символами. Он в одной функции, есть другая функция, которая...

Вывод двумерного массива на экран
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;conio.h&gt; #include...


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

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