Напечатать два ромба рядом

Я хочу напечатать два ромба рядом, но мой код печатает 1 ромб.

Я потратил на это много времени и действительно не знаю, что еще делать.

Любая помощь будет оценена по достоинству.

#include<iostream>
#include<math.h>
using namespace std;

int main()
{
int i,j,n, middle, spaceCount, starCount;
cin >> n;

middle = (n - 1) / 2;

for ( i = 0; i < n; i++)
{
    spaceCount = abs(middle - i);
    starCount = n - 2 * abs(middle - i);

        for ( j = 0; j < spaceCount; j++)
            cout << " ";
       
        for (j = 0; j < starCount; j++)
            cout << "*";

        for (j = 0; j < spaceCount; j++)
            cout << " ";

            cout << endl;
}

}

ввод = нечетные числа

желаемый результат =

  *    *
 ***  ***
**********
 ***  ***
  *    *

Не нужно использовать изображение, чтобы показать желаемый результат — см. мое редактирование. Пожалуйста, ознакомьтесь с Как спросить.

AcK 22.12.2020 18:12
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
930
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы забыли напечатать второй ромб. На каждой итерации вы должны печатать сначала несколько пробелов, затем звезды, затем двойное количество пробелов (чтобы закончить первый ромб и установить пробелы для второго ромба), а затем вы должны нарисовать звезды для второго ромба. Это пример кода, который печатает два ромба:

#include<iostream>
#include<math.h>
using namespace std;

int main()
{
int i,j,n, middle, spaceCount, starCount;
cin >> n;

middle = (n - 1) / 2;

for ( i = 0; i < n; i++)
{
    spaceCount = abs(middle - i);
    starCount = n - 2 * abs(middle - i);

        // print a row of the first diamonds
        // spaces at the beginning
        for ( j = 0; j < spaceCount; j++)
            cout << " ";
       
        // the stars itself
        for (j = 0; j < starCount; j++)
            cout << "*";

        // finish the rectangle of the first diamond
        for (j = 0; j < spaceCount; j++)
            cout << " ";
        
        // print a row of the second diamond
        // spaces at the beginning
        for (j = 0; j < spaceCount; j++)
            cout << " ";

        // the stars itself
        for (j = 0; j < starCount; j++)
            cout << "*";
  
        // spaces at the end are not necessarily required for the last diamond

        cout << endl;
}

}

Было бы еще лучше создать функцию для печати одного ромба (строки) и вызова этой функции два раза (это предотвращает дублирование кода).

Другие вопросы по теме