Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2022, 23:00   #1
Rusikfsk
 
Регистрация: 26.11.2022
Сообщений: 7
По умолчанию помогите достроить квадрат

не могу разобраться почему нет стороны квадрата справа.


Код:
#include <iostream>
using namespace std;
int main()
{
   
    int a;
    cin >> a;
    for (int i = 1; i <= a; i++)
    {
        for (int j = 1; j <= a ; j++)
        {
            if (i == 1 || j == 1  || j == a * 2 || i == a)
                cout << "*";
            if (i == 1 || j == 1 || j == a * 2 || i == a)
                cout << " ";
        }
        for (int j = 1; j <= a; j++)
        {
            if (i == a / (a * 2))
                cout << "*";
            else
                cout << " ";
        }
        cout << endl;
    }
}

Код:
* * * * *
*
*             - в консоли выводит вот так
*
* * * * *

Последний раз редактировалось BDA; 02.12.2022 в 08:49.
Rusikfsk вне форума Ответить с цитированием
Старый 01.12.2022, 23:46   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

а почему у вас в условиях j == a * 2, если по условию цикла она максимум будет перечисляться до a
macomics вне форума Ответить с цитированием
Старый 02.12.2022, 08:46   #3
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 493
По умолчанию

Rusikfsk, работа с графикой подразумевает использование буфера, вам ничего не мешает поступить так же. Сделайте двумерный массив (аналог "экрана"). Добавляйте в него элементы как душе угодно в любом порядке. А для консоли читате массив построчно и выводите.
Valick вне форума Ответить с цитированием
Старый 02.12.2022, 14:47   #4
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

Вместо символа *
в разных строках внеся разные символы @ #
исходная программа темы ошибочно применят все символы
и даже пробелы печатает где не нужно

Казалось бы просто: ввести или задать А

Цикл от 1 до А: верхняя сторона

Цикл от 1 до А-2:
... Левая сторона 1 символ
... Вложенный Цикл от 1 до А-2 и пробелы
... Правая сторона 1 символ

Цикл от 1 до А: нижняя сторона

Код:
n = 5 'quadr.bas
For i = 1 To n: Print "*";: Next: Print

For j = 1 To n - 2: Print "#";
    For k = 1 To n - 2: Print "@";: Next
Print "%";: Print: Next

For l = 1 To n: Print "&";: Next
Код:
*****
#@@@%
#@@@%
#@@@%
&&&&&
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 02.12.2022 в 21:08.
сфинкс вне форума Ответить с цитированием
Старый 02.12.2022, 15:32   #5
Rusikfsk
 
Регистрация: 26.11.2022
Сообщений: 7
По умолчанию

macomics,
Цитата:
Сообщение от macomics Посмотреть сообщение
а почему у вас в условиях j == a * 2, если по условию цикла она максимум будет перечисляться до a
Прошу прощения ,мой косяк , не обратил внимания . Спасибо что указали. изначально было а*2. Но мне не понравился результат.
Rusikfsk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите написать программу возведения в квадрат введенных целых чисел от -5 до 5 через оператор switch Psyho_link Помощь студентам 2 20.11.2020 00:18
Помогите написать программу возведения в квадрат введенных целых чисел от -5 до 5 Psyho_link Помощь студентам 4 18.11.2020 21:43
Помогите плиз реализовать в Lasarus! Изобразить удаляющийся квадрат, определенных размеров, размещенный в центре экрана. soso1 Помощь студентам 1 15.10.2013 18:45
Блок схема (достроить) Tolian92 Паскаль, Turbo Pascal, PascalABC.NET 0 22.12.2011 22:07
Блок схема паскаля (достроить) Tolian92 Помощь студентам 0 22.12.2011 21:08