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

Сформировать квадратную матрицу по указанному образцу

02.03.2020, 12:37. Показов 2230. Ответов 20
Метки нет (Все метки)

Сформировать квадратную матрицу порядка n × n по образцу вашего варианта задания. Размерность задать в виде именованной константы. Вывести матрицу на экран.

Я понимаю что есть подобные задания. Буду признателен даже за ссылки на подобное задание.
Изображения
 
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2020, 12:37
Ответы с готовыми решениями:

Сформировать матрицу по указанному образцу
сформировать матрицу 100 ...000 220 .. 000 333 . ..000...

Сформировать квадратную матрицу по образцу
Здравствуйте..Помогите реализовать программу. Сформировать и распечатать квадратную матрицу...

Сформировать квадратную матрицу по образцу
Сформувати квадратну матрицю порядку n за заданим зразком: 0 0 0 . 0 0 0 1 0 . 0 0 0 0 2 . 0 0

Сформировать квадратную матрицу по заданному образцу
Сформировать квадратную матрицу порядка N по заданному образцу: 111111 222220 333300 444000...

20
7421 / 5016 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
02.03.2020, 12:58 2
Kipish1337, что если Вам попробовать заполнить матрицу самостоятельно ? для начала можете заполнить все строки числами от 1 до n, потом найдёте как заполнить по указанному варианту.
0
0 / 0 / 0
Регистрация: 17.02.2018
Сообщений: 27
02.03.2020, 13:01  [ТС] 3
Yetty, Уже этим занимаюсь.
0
Модератор
Эксперт CЭксперт С++
5105 / 4535 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
02.03.2020, 13:05 4
Лучший ответ Сообщение было отмечено Kipish1337 как решение

Решение

Kipish1337, даю Вам немного "хитрую" реализацию
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
#include <iostream>
#include <iomanip>
 
using namespace std;
 
int main()
{
    const int   n = 6;
    int         A[n][n];
    int         value, init = n - 1, step = -1;
 
    for (int i = 0; i < n; i++)
    {
        value = init + 1;
        for (int j = 0; j < n; j++, value+=step)
            A[i][j] = value;
        init ^= n - 1;  //0 или n-1
        step *= -1;     //1 или -1
    }
 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
            cout << setw(4) << A[i][j];
        cout << endl;
    }
}
Можете сделать по-другому...

Добавлено через 38 секунд
Цитата Сообщение от Kipish1337 Посмотреть сообщение
Уже этим занимаюсь
А вот это правильно !
1
0 / 0 / 0
Регистрация: 17.02.2018
Сообщений: 27
02.03.2020, 13:13  [ТС] 5
liv, Вариант реализации очень интересный. Я попробовал сделать вот так.
C++
1
2
3
4
5
6
7
8
    for(int i=0; i<n; i++) 
    {
        o=0;
        for(int j=0; j<n; j++) 
        {
            if (i%2==0) a[i][j]=k-o; cout<<a[i][j]<<' '; o++;
            else a[i][j]=k+o; cout<<a[i][j]<<' '; o++;
        }
Добавлено через 5 минут
liv,

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>
using namespace std;
 
 
 
 
int main() 
{ 
    int n,k,o;
    cin>>n;
    k=n;
    cout<<endl;
    int a[n][n];
    
    for(int i=0; i<n; i++) 
    {
        o=0;
        for(int j=0; j<n; j++) 
        {
            if (i%2==0) {a[i][j]=k-o; cout<<a[i][j]<<' '; o++;}
            else {a[i][j]=1+o; cout<<a[i][j]<<' '; o++;}
        } 
        
        cout<<'\n';
    }
}
А если точно то вот так), всё равно спасибо !)
0
Модератор
Эксперт CЭксперт С++
5105 / 4535 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
02.03.2020, 13:14 6
Kipish1337, что такое k? Как меняется от строки к строке?
И, наверное, лучше записать так:
C++
1
2
3
4
5
6
            if (i % 2 == 0) 
                A[i][j] = n - o; 
            else 
                A[i][j] = k + o; 
            cout << A[i][j] << ' '; 
            o++;
0
7421 / 5016 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
02.03.2020, 13:15 7
Цитата Сообщение от Kipish1337 Посмотреть сообщение
Уже этим занимаюсь.

Цитата Сообщение от Kipish1337 Посмотреть сообщение
a[i][j]=k-o;
так не лучше ?
C++
1
a[i][j]=n-j;
строка вывода
Цитата Сообщение от Kipish1337 Посмотреть сообщение
cout<<a[i][j]<<' ';
записывается 1 раз (уже после if else)
0
Модератор
Эксперт CЭксперт С++
5105 / 4535 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
02.03.2020, 13:15 8
Цитата Сообщение от Kipish1337 Посмотреть сообщение
А если точно то вот так
с k разобрались Кстати, зачем K? Там вполне можно поставить n
0
0 / 0 / 0
Регистрация: 17.02.2018
Сообщений: 27
02.03.2020, 13:15  [ТС] 9
liv, K вообще не нужна в этом случае я просто её добавил, но по итогу я её убрал и оставил n.
0
Модератор
Эксперт CЭксперт С++
5105 / 4535 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
02.03.2020, 13:17 10
Да и o не нужна Это тоже самое, что j

Добавлено через 36 секунд
Ок, покажи, что в итоге получилось
1
0 / 0 / 0
Регистрация: 17.02.2018
Сообщений: 27
02.03.2020, 13:19  [ТС] 11
Ага!) Я только сейчас это заметил)

Добавлено через 2 минуты
liv, А можно как-то реализовать динамический массив?
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
#include <iostream>
 
using namespace std;
 
int main() 
{ 
    int n;
    cin>>n;
    cout<<endl;
    int a[n][n];
    
    for(int i=0; i<n; i++) 
    {
        for(int j=0; j<n; j++) 
        {
            if (i%2==0) {a[i][j]=n-j; 
                cout<<a[i][j]<<' '; }
            else {a[i][j]=1+j; 
            cout<<a[i][j]<<' ';}
        } 
        
        cout<<'\n';
    }
}
0
7421 / 5016 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
02.03.2020, 13:27 12
Kipish1337, сообщения читаете ?
Цитата Сообщение от Yetty Посмотреть сообщение
строка вывода
Цитата Сообщение от Kipish1337 Посмотреть сообщение
cout<<a[i][j]<<' ';
записывается 1 раз (уже после if else)
// объявление динамического массива
C++
1
int *a = new int[n];
// освобождение памяти
C++
1
delete[]a;
при вводе n укажите что n чётное, ещё лучше заблокировать ввод нечётных
0
Модератор
Эксперт CЭксперт С++
5105 / 4535 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
02.03.2020, 13:27 13
Лучший ответ Сообщение было отмечено Kipish1337 как решение

Решение

Kipish1337, а чего не можно, все можно
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int n;
    cin >> n;
    cout << endl;
    int **a = new int*[n];
    for (int i = 0; i < n; i++)
        a[i] = new int[n];
 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (i % 2 == 0) {
                a[i][j] = n - j;
            }
            else {
                a[i][j] = 1 + j;
            }
            cout << a[i][j] << ' ';
        }
        cout << '\n';
    }
    for (int i = 0; i < n; i++)
        delete[] a[i];
    delete[] a;
}
Добавлено через 47 секунд
Кстати, да, посмотри внимательно на отличия в циклах...
1
0 / 0 / 0
Регистрация: 17.02.2018
Сообщений: 27
02.03.2020, 13:28  [ТС] 14
liv, А что делает этот цикл?
C++
1
2
    for (int i = 0; i < n; i++)
        a[i] = new int[n];
0
Модератор
Эксперт CЭксперт С++
5105 / 4535 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
02.03.2020, 13:30 15
Kipish1337, что такое динамические массивы, знаете?
В частности, как строится динамическая марица?
0
0 / 0 / 0
Регистрация: 17.02.2018
Сообщений: 27
02.03.2020, 13:31  [ТС] 16
До меня доехало, мы объявляем динамические строки.

Добавлено через 51 секунду
liv, Да понимаю, у меня есть несколько работ с динамическим массивом, но ни разу не использовал его в матрице.

Добавлено через 24 секунды
А вот с матрицами туговато.
0
Модератор
Эксперт CЭксперт С++
5105 / 4535 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
02.03.2020, 13:32 17
Kipish1337, ну и славно
Не зря побывали на нашем форуме. Что-то да вынесли...
0
0 / 0 / 0
Регистрация: 17.02.2018
Сообщений: 27
02.03.2020, 13:33  [ТС] 18
liv, Сейчас буду мучиться над второй частью)
0
7421 / 5016 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
02.03.2020, 13:36 19
Kipish1337, я в предыдущем сообщении промазал, привёл объявление одномерного массива (вместо двумерного) , но тоже сохраните для будущих задач
0
0 / 0 / 0
Регистрация: 17.02.2018
Сообщений: 27
02.03.2020, 13:41  [ТС] 20
Yetty, Уже сохранил
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2020, 13:41
Помогаю со студенческими работами здесь

Сформировать квадратную матрицу по заданному образцу
Сформируйте квадратную матрицу порядка n по заданному образцу. Протестируйте программу для...

Сформировать квадратную матрицу порядка n по заданному образцу
1∙2 0 0 … 0 0 0 0 2∙3 0 … 0 0 0 0 0 3∙4 … ...

Сформировать квадратную матрицу порядка n по заданному образцу
Сформировать квадратную матрицу порядка n по заданному образцу. Добавлено через 5 минут 1 1 1...

Сформировать квадратную матрицу порядка n по заданному образцу
Сформировать квадратную матрицу порядка n по заданному образцу: 1 1 1 … 1 1 ...


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

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

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