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

Формирования матрицы по ее внешнему виду

20.12.2020, 22:05. Показов 1077. Ответов 18

Author24 — интернет-сервис помощи студентам
Товарищи форумчане, сломал все голову над раздумьем, ничего не выходит. Смотрел уже обучалки, искал похожие задания, но нане нашел. Не могу понять по какому алгоритму решать это. В этом 1 раз, поэтому не пинайте пожалуйста
Нужно написать программу для формирования матрицы по ее внешнему виду для любого заданного порядка (нечетного).
По вот этому примеру. То есть если ввести размер матрицы 5, то должно выдать как на картинке, если ввести 9 должно посчитать аналогично.
Название: 786.PNG
Просмотров: 111

Размер: 4.8 Кб

Свои попытки не буду вставлять, потому что там нет ничего толкового даже близко...
Помощь нужна очень сильно, заранее спасибо. Прога нужна на Си
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2020, 22:05
Ответы с готовыми решениями:

Написать программу для формирования матрицы по ее внешнему виду.
Написать программу для формирования матрицы по ее внешнему виду. 5 4 3 2 1 6 7 8 9 10 15 14 13...

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

Определить шрифт по внешнему виду
Сервисы распознавания шрифтов ничего не дали, но возможно ктото знает его или пользовался ранее...

Помогите определить по внешнему виду лавинник
Изучаю устройство лазерного дальномера. Длина волны предположительно 900 нм. При разборке вижу...

18
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
20.12.2020, 22:25 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
#include <iostream>
#include <iomanip>
 
int main()
{
    std::cout << "Введите нечетное n: ";
    unsigned n;
    std::cin >> n;
    if (n < 3 || n % 2 == 0) return 1;
 
    int** A = new int* [n];
    for (unsigned i = 0; i < n; ++i) A[i] = new int [n];
 
    int x_start = n - 2;
    for (unsigned i = 0; i < n / 2; ++i)
    {
        int x = x_start;
        for (unsigned j = 0; j < n / 2; ++j)
        {
            A[i][j] = A[i][n-j-1] = A[n-i-1][j] = A[n-i-1][n-j-1] = x;
            x = x > 2 ? x - 1 : 0;
        }
        --x_start;
    }
 
    std::cout << "Заполненный массив:" << std::endl;
    for (unsigned i = 0; i < n; ++i)
    {
        for (unsigned j = 0; j < n; ++j)
        {
            std::cout << std::setw(4) << A[i][j];
        }
        std::cout << std::endl;
    }
 
    for (unsigned i = 0; i < n; ++i) delete[] A[i];
    delete[] A;
 
    return 0;
}
0
Yetty
21.12.2020, 07:24
  #3

Не по теме:

Цитата Сообщение от edgoten1 Посмотреть сообщение
Прога нужна на Си
edgoten1, это раздел языка С++. раздел языка С здесь: http://www.cyberforum.ru/c-beginners/

0
1 / 1 / 0
Регистрация: 08.11.2020
Сообщений: 79
21.12.2020, 12:03  [ТС] 4
Спасибо
0
1 / 1 / 0
Регистрация: 08.11.2020
Сообщений: 79
21.12.2020, 14:00  [ТС] 5
jugu, не работает.
Формирования матрицы по ее внешнему виду
0
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
21.12.2020, 15:36 6
См. скрин.
Цитата Сообщение от edgoten1 Посмотреть сообщение
jugu, не работает.
Миниатюры
Формирования матрицы по ее внешнему виду  
0
1 / 1 / 0
Регистрация: 08.11.2020
Сообщений: 79
21.12.2020, 16:01  [ТС] 7
jugu, я не знаю C++, попросил на СИ
0
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
21.12.2020, 18:21 8
Цитата Сообщение от edgoten1 Посмотреть сообщение
я не знаю C++, попросил на СИ
Так замени cout на printf, если знаешь Си.
0
1 / 1 / 0
Регистрация: 08.11.2020
Сообщений: 79
22.12.2020, 11:22  [ТС] 9
Выше скинул, не работает
0
2456 / 1061 / 481
Регистрация: 17.11.2018
Сообщений: 2,740
22.12.2020, 13:37 10
Цитата Сообщение от edgoten1 Посмотреть сообщение
не работает
edgoten1, в 15 и 18 строках кода jugu вместо < нужно <=.

Добавлено через 3 минуты
только мне кажется, что это не то, что нужно по заданию...
0
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
22.12.2020, 15:27 11
Цитата Сообщение от analogov net Посмотреть сообщение
в 15 и 18 строках кода jugu вместо < нужно <=.
Я, конечно, не гарантирую стопроцентного охвата при тестировании, но сырой код не выкладываю. Всё работает и для матриц размера 5, и 7, и 9, ... и 25.

Цитата Сообщение от analogov net Посмотреть сообщение
только мне кажется, что это не то, что нужно по заданию...
Да, задание допускает неоднозначную интерпретацию.
0
2456 / 1061 / 481
Регистрация: 17.11.2018
Сообщений: 2,740
22.12.2020, 15:43 12
Цитата Сообщение от jugu Посмотреть сообщение
Всё работает и для матриц размера 5, и 7, и 9, ... и 25.
jugu, а не может быть, что ты выложил не тот вариант кода, по которому сделана твоя картинка? потому что у меня тоже не правильно отображается, даже на размере 5x5
0
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
22.12.2020, 16:24 13
Цитата Сообщение от analogov net Посмотреть сообщение
jugu, а не может быть, что ты выложил не тот вариант кода, по которому сделана твоя картинка? потому что у меня тоже не правильно отображается, даже на размере 5x5
Я скопировал код из поста №2 и выполнил его еще несколько раз. Работает всё верно. Вот что получается для матрицы размером 9 (см. скрин 1). Для матрицы размером 15 см. скрин 2.
Миниатюры
Формирования матрицы по ее внешнему виду   Формирования матрицы по ее внешнему виду  
0
1 / 1 / 0
Регистрация: 08.11.2020
Сообщений: 79
22.12.2020, 16:24  [ТС] 14
Решение:
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
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <math.h>
#include <cstdlib>
 
#define _CRT_SECURE_NO_WARNINGS
 
int main() {
    setlocale(2, "rus");
 
    int matrix[9][9];
    int n, i, j;
    do {
        printf("Введите размер матрицы (3,5,7,9): ");
        scanf_s("%d", &n);
    } while (n < 3 || n>9);
    int min = n, elem;
 
    /* Заполняем матрицу нулями */
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            matrix[i][j] = 0;
        }
    }
 
    /* Основное решение */
    for (int i = 0; i < n / 2; i++) {
        for (int j = 0; j < n / 2; j++) {
            elem = n - 2 - j - i;
            if (i == 0 && elem < min)
                min = elem;
            if (elem >= min) {
                matrix[i][j] = elem;
                matrix[i][n - j - 1] = elem;
                matrix[n - i - 1][j] = elem;
                matrix[n - i - 1][n - j - 1] = elem;
            }
        }
    }
    /* Выводим матрицу */
    for (int i = 0; i < n; i++) {
        printf("\n");
        for (j = 0; j < n; j++) printf(" %4d ", matrix[i][j]);
    }
 
 
    printf("\n\nНажмине любую клавишу для выхода...");
    _getch();
    return 0;
}
0
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
22.12.2020, 16:25 15
Как нужно заполнять среднюю строку и средний столбец из задания однозначно не следует, поэтому у меня там нули. Но если нужно, чтобы "ромбик из нулей" был одного и того же размера в центре матрицы, то несложно чуть изменить границы цикла.
0
2456 / 1061 / 481
Регистрация: 17.11.2018
Сообщений: 2,740
22.12.2020, 18:23 16
Цитата Сообщение от jugu Посмотреть сообщение
Я скопировал код из поста №2 и выполнил его еще несколько раз.
jugu, я тоже... Вот, например:
Формирования матрицы по ее внешнему виду


Как так? ума не приложу...
0
2456 / 1061 / 481
Регистрация: 17.11.2018
Сообщений: 2,740
22.12.2020, 18:28 17
А вот, если сделать, как я говорил:
Формирования матрицы по ее внешнему виду


Но это выводит что-то не то, что нужно...
0
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
22.12.2020, 18:55 18
Цитата Сообщение от analogov net Посмотреть сообщение
Как так? ума не приложу...
Походу, всё-таки мой косяк. Нулями-то я эту область ромбика забыл заполнить, вот и выводится мусор ))
0
1 / 1 / 0
Регистрация: 08.11.2020
Сообщений: 79
22.12.2020, 20:29  [ТС] 19
Я выложил ответ, правильное решение
0
22.12.2020, 20:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2020, 20:29
Помогаю со студенческими работами здесь

Как определить по внешнему виду тип оперативной памяти?
Как определить по внешнему виду тип оперативной памяти?

Поиск бука по внешнему виду, игра кто лучше помнит модели ну и меня выручите
В общем принесли мне бук в ремонт HP старый, с сидюком. В общем человек его ему привез из германии...

Есть ли способ определить по внешнему виду, что ноутбук был залит/утоплен водой?
Хочу купить ноут б/у, а вот как определить состояние комплектующих не открывая не знаю. Ну слышал,...

"Ищу тебя", или поиск видеокарты по одному лишь внешнему виду
Ребята, нужна ваша помощь: друг принес свой старый ПК (брал в 2009), но вспомнить модели...

метод вычисления определителя матрицы, основанный на приведении исходной матрицы к диагональному виду
ПОМОГИТЕ ПОЖАЛУЙСТА НАПИСАТЬ ПРОГУ. Разработка программного обеспечения для вычисления...

Для матрицы n порядка сделать превращение Гаусса тоесть приведение матрицы к треугольному виду
Для матрицы n порядка зделать превращение Гаусса тоесть приведение матрицы к треугольному виду.....


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

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