Форум программистов, компьютерный форум CyberForum.ru

Переписать массив элементы матрицы - C++

Восстановить пароль Регистрация
 
Alias332
0 / 0 / 0
Регистрация: 16.10.2011
Сообщений: 22
30.10.2011, 18:39     Переписать массив элементы матрицы #1
Задана матрица A размерности n*m. Переписать в массив B элементы aii одной
главной диагонали матрицы A, в массив C - элементы ai,n-i+1 другой главной
диагонали матрицы A. Полученные массивы вывести на экран в виде таблицы
из трех колонок.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2011, 18:39     Переписать массив элементы матрицы
Посмотрите здесь:

Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В. C++
C++ Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В
C++ Переписать поочередно элементы главной и побочной диагоналей матрицы в массив
C++ Элементы матрицы переписать построчно в одномерный массив
C++ Заданные две квадратные матрицы одинакового размера - А и В. Переписать в одномерный массив R те элементы матриц А и В, имеющие одинаковые индексы и
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tyrnikMan
6 / 6 / 0
Регистрация: 30.10.2011
Сообщений: 7
31.10.2011, 00:32     Переписать массив элементы матрицы #2
Обязательно помогу написать программу!! Но пока мне не до конца понятно задание!!!
Не понятно какие элементы нужно скопировать в массив С, возможно в формуле ошибка!!!
Не понятно как вывести массивы в виде трёх столбцов!! Ведь всего два массива, где третий??
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
31.10.2011, 00:36     Переписать массив элементы матрицы #3
Цитата Сообщение от tyrnikMan Посмотреть сообщение
Не понятно какие элементы нужно скопировать в массив С, возможно в формуле ошибка!!!
1 0 0
0 1 0
0 0 1
единицы это главная диагональ
а здесь это "другая главная диагональ"
0 0 1
0 1 0
1 0 0


Цитата Сообщение от tyrnikMan Посмотреть сообщение
Не понятно как вывести массивы в виде трёх столбцов!! Ведь всего два массива, где третий??
три массива A B C...
Неужели тяжело подумать
tyrnikMan
6 / 6 / 0
Регистрация: 30.10.2011
Сообщений: 7
31.10.2011, 00:44     Переписать массив элементы матрицы #4
Подумать не трудно!!! Массива то три, но первый массив - двумерный и там не известно сколько может быть столбцов и строк! Так что три столбца никак в конце не получится вывести, как не крути! А вот два, вполне B и С.
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
31.10.2011, 00:59     Переписать массив элементы матрицы #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
лови
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
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"rus");
    int a[20][20];
    int m,n;
    int b[20], c[20];
    cout << "Введите кол-во строк: ";
    cin >> m;
    cout << "Введите кол-во столбцов: ";
    cin >> n;
    for(int i = 0; i < m; i++)
    {
        for(int j = 0; j < n; j++)
        {
            cout << "a[" << i << "][" << j << "] = ";
            cin >> a[i][j];
        }
    }
    for(int i = 0; i < m; i++)
    {
        b[i] = a[i][i];
        c[i] = a[i][n - i - 1];
    }
    cout << "a  b   c" << endl;
    for(int i = 0; i < m; i++)
    {
        for(int j = 0; j < n; j++)
        {
            cout << a[i][j] << " ";
        }
        cout << "   " << b[i] << "  " << c[i] << endl;
    }
    system("pause");    
}
Тестировал на квадратной матрице 3х3, натуральными числами.
Добавлено через 59 секунд
могут быть неровности, так как форум по своему форматирует табуляцию и пробелы
tyrnikMan
6 / 6 / 0
Регистрация: 30.10.2011
Сообщений: 7
31.10.2011, 03:51     Переписать массив элементы матрицы #6
Выше предложенный алгоритм решения задачи правильный, но имеет некоторые недочёты. Например, если матрица будет не квадратной, то алгоритм повиснет, массивы объявлены статически а не динамически, что в некотором роде ограничивает функционал программы. Вот проверенный исходник программы - 100% рабочий, соответствует хорошему тону программирования!!!
Bers
Заблокирован
31.10.2011, 03:54     Переписать массив элементы матрицы #7
Цитата Сообщение от tyrnikMan Посмотреть сообщение
соответствует хорошему тону программирования!!!
Суржик - это сегодня хорошим тоном программирования считается?
tyrnikMan
6 / 6 / 0
Регистрация: 30.10.2011
Сообщений: 7
31.10.2011, 04:02     Переписать массив элементы матрицы #8
Что Вы имеете ввиду??
Bers
Заблокирован
31.10.2011, 04:29     Переписать массив элементы матрицы #9
я имею ввиду смешанный стиль программирования. Процедурный подход языка си пополам с объектами с++

Матрица там представлена в виде самостоятельного набора данных и кучки функций (процедурный подход).
Вместе с тем, юзаются полноценные с++ объекты ( std::cout ), и операции ( delete )

Хотя... о каком процедурном подходе идёт речь, если там все наляпано хардкорно в одной функции main()

А если вдруг не нужно будит заполнять матрицу случайными числами, что будите делать? Затирать ставшие ненужными, но полностью рабочие строчки кода?
А если друг появятся дополнительные задачи, которые нужно решить с помощью матрицы? Как будите выдирать свою матрицу из всей этой общей кашици?

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

Вот если вы сделаете красивый класс матрицы, который можно использовать как многоразовый код, для решения большинства типовых задач, вот тогда я бы сказал "это - хороший тон программирования на с++".

А тот код, который лежит по вашей ссылочке может быть и не плох исключительно в качестве учебного пособия. Но на "хороший тон" не катит ни для си стиля, ни для с++ стиля.
Просто готовое решения для одного конкретного задания преподавателя.
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
31.10.2011, 10:33     Переписать массив элементы матрицы #10
Вы конечно правы, но зачем ему такое, он попросил выполнить задачку, написать простую программу, вот я и написал...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2011, 14:31     Переписать массив элементы матрицы
Еще ссылки по теме:

C++ Переписать все элементы з матрицы С в одномерный массив F, отсортировать его по возрастанию
C++ Задана матрица Т(N,M). Сформировать массив R(N,M-2),куда переписать все элементы матрицы T
C++ Все элементы заданной матрицы, попадающие в интервал [2, 9] переписать в новый массив. Подсчитать количество элементов в новом массиве

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

Или воспользуйтесь поиском по форуму:
Bers
Заблокирован
31.10.2011, 14:31     Переписать массив элементы матрицы #11
Цитата Сообщение от amor1k Посмотреть сообщение
Вы конечно правы, но зачем ему такое, он попросил выполнить задачку, написать простую программу, вот я и написал...
Ну это самое главное) И в принципе достаточно для вузовской программы обучения да.
Но это ещё не предел)

Можно написать собственный класс строк. Только нафег надо, в с++ итак есть замечательные стринги. А вот нормальной матрицы в с++ нету.

Поэтому, если довести идею до ума, и сделать красивый многоразовый класс матрицы, то такая вещь в хозяйстве всегда сгодится. И это будит уже уровень.

Подумайте об этом)
Yandex
Объявления
31.10.2011, 14:31     Переписать массив элементы матрицы
Ответ Создать тему
Опции темы

Текущее время: 05:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru