Вывести в консоль квадрат в квадрате со ***

109
11 января 2017, 01:55

Здравствуйте!
С обычным квадратом все просто, но как в него засунуть поменьше квадрат, вот это проблемка... Помогите пожалуйста)

#include <iostream>
using namespace std;
void main()
//Вывести на экран квадрат в квадрате
{
    setlocale(LC_ALL, "Russian");
    int side;
    cout << "Введите 1 сторону квадрата = ";
    cin >> side;
    for (int i = 1; i <= side ; i++)
    {
        for (int j = 1; j <= side * 2; j++)
        {
            if (i == 1 || j == side * 2 || j == 1 || i == side )
                cout << '*';
            else
                cout << ' ';
        }
        for (int j = 1; j <= side; j++)
        {
            if ( i == side / 3)
                cout << '*';
            else
                cout << ' ';
        }
        cout << endl;
    }
}

я уже начала подумывать применить третий for со своим if, но условие для этого if не лезет в голову... т.е. 21 строчка не правильная(

Answer 1

Вот моя реализация вашей задачи.

#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
    int a, b;
    int k = 0;
    cout << "INPUT SIZE 1: ";
    cin >> a;
    cout << "INPUT SIZE 2: ";
    cin >> b;
    if(a >= 20 || b >= 20){
        cout << "Size >= 20 ! is err";
        return 0;
    }
    if(a == b){
        cout << "Size 1 == size 2 ! is err";
        return 0;
    }
    if(a > b){
        k = (a - b) / 2;
    }
    if(a < b){
        k = (b - a) / 2;
    }
    char arr[20][20] = {0};
    for(int i=0; i<a; i++){
        arr[i][0] = '*';
        arr[0][i] = '*';
        arr[a-1][i] = '*';
        arr[i][a-1] = '*';
    }
    b += k;
    for(int i=k; i<b; i++){
        arr[i][k] = '*';
        arr[k][i] = '*';
        arr[b-1][i] = '*';
        arr[i][b-1] = '*';
    }
    for(int i=0;i<20;i++){
       for(int j=0;j<20;j++){
            cout << arr[i][j];
       }
       cout << endl;
    }
    getchar();
    return 0;
}

READ ALSO
Передача массива в функцию и range-based цикл

Передача массива в функцию и range-based цикл

Весь мозг поломал, перечитал все об указателях и так и не понял как сделать этот код работоспособнымКак прямо сказать циклу что я ему подсовываю...

100
Как собрать библиотеки WebM для MinGW

Как собрать библиотеки WebM для MinGW

Стоит задача реализовать в приложении на C++ потоковое видео (для браузеров), дали направление - WebMНа официальном сайте куча репозиториев (кодеки,...

128
Установка библиотек QT creator в Astra Linux

Установка библиотек QT creator в Astra Linux

Всем приветМне необходимо работать в Астра-Линукс и разрабатывать в нем приложения

221
Получение текста событий из Event Log&#39;a в Windows

Получение текста событий из Event Log'a в Windows

Имеется не плохой пример от Microsoft по работе с Event Log, но проблема в том что текста самих событий он не выдаётКак можно получить текст событий?

115