Дайте n. Отобразить треугольник со стороной из n звездочек, пустых внутри

#c

#c

Вопрос:

Это мой код, но я не понимаю, как я могу напечатать только 5 звездочек в последней строке. Я пробовал с помощью debugger, я знаю проблему, но я не знаю, как это исправить.

 #include "pch.h"
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    for (int i = 1; i <= n; i  )
    {
        for (int j = 1; j <= 2 * n; j  )
        {
            if (i   j == 6 || j - i == 4)
                cout << "*";
            else cout << " ";
                 
            if (i== n  amp;amp; j % 2 !=0)
            {
                cout << "*";
            }
            else cout << " ";
        }
        cout << endl;

    }

}
 

Это результат.

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

Комментарии:

1. Нам помогло бы, если бы вы предоставили ожидаемый результат

2. но n может быть 1<=n <=10 , а не только 5

Ответ №1:

Вы можете сделать так, как,

 int n;
cin >> n;

for (int i = 1; i <= n; i  ) {

  for (int j = 1; j <= n - i; j  ) {
    cout << " ";
  }

  cout << "* ";
  
  if (i == n) {
    for (int j = 1; j <= n - 2; j  ) {
      cout << "* ";
    }
  } else {
    for (int j = 1; j <= 2 * i - 4; j  ) {
      cout << " ";
    }
  }

  if (i != 1) cout << "*";

  cout << endl;
}