@EgaNator
Учусь на программиста

Как в шифре с магическим квадратов заполнить пустые клетки произвольным символом?

Реализовал шифрование с применением магического квадрата, но не получается выполнить одно условие. Если остаются пустые клетки, то их нужно заполнить произвольным символом, например, "." (точкой). Как это можно реализовать?
Реализация:
#include<iostream>
#include <conio.h>
#include<string>
#include <windows.h>
using namespace std;
 
int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    //setlocale(LC_ALL, "Russian");
 
    const int size = 4;
    const int magic[size][size] = {{ 4,  14,  15,  1 },
                                   { 9,  7,   6,   12 },
                                   { 5,  11,  10,  8 },
                                   { 16, 2,   3,   13 }};
 
    char cipher
 
        [size][size];
    string message;
 
    cout << "Введите текст: ";
    cin >> message;
 
    // обнуление массива под результат
    for (int i = 0; i < size; i++)
        for (int j = 0; j < size; j++) {
            cipher[i][j] = '\0';
        }
 
    for (int k = 0; k < message.length(); k++) {
        for (int i = 0; i < size; i++)
            for (int j = 0; j < size; j++) {
                if (magic[i][j] == (k + 1)) { 
                    cipher[i][j] = message[k];
                    goto next; 
                }
            }
    next:
        ;
    }
 
    cout << "Зашифрованный текст: ";
 
    for (int i = 0; i < size; i++)
        for (int j = 0; j < size; j++) {
            if (0 != cipher[i][j])
                cout << cipher[i][j];
        }
    cout << endl;
 
    _getch();
    return 0;
}
  • Вопрос задан
  • 44 просмотра
Решения вопроса 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Можно массив с шифром инициализировать этим символом перед заполнением текстом.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы