[C++] Rysowanie konturu kwadratu z gwiazdek

Mam problem z tym kodem który wyświetla mi kwadrat z gwiazdek z wypełnieniem a chciał bym sam kontur

#include

using namespace std;

int main()

{

	int a;

cout << "Wprowadz bok kwadratu ";

cin >> a;

for (int i=1;a>=i;i++)

{

	for (int j=1;a>=j;j++)

	{

		if(j==1 || j==a) cout << "*";

		else cout << " ";

	}

	cout <<"\n";

	}	

return 0;

}

Mieszasz pojęcia, brak ci górnej i dolnej linii. Musisz dodać do tego if

i==1 || i==a

(bowiem nie sprawdzasz którą linię rysujesz)

Jak chcesz to sobie jeszcze przeanalizuj to:

#include 


int main(void)

{

	int sideX, sideY;


	printf("Side X: ");

	scanf("%i", &sideX);

	printf("Side Y: ");

	scanf("%i", &sideY);


	int i = 0;

	for(; i < sideX; ++i)

		putchar('#');

	putchar('\n');


	i = 0;

	for(; i < (sideY - 2); ++i)

	{

		putchar('#');

		int j = 0;

		for(; j < (sideX - 2); ++j)

			putchar(' ');

		printf("#\n");

	}


	i = 0;

	for(; i < sideX; ++i)

		putchar('#');


	fflush(stdin);

	getchar();


	return 0;

}

a w którym miejscu wstawić ten warunek zmiennej i?

W tym if (masz go dołożyć do tego co już masz). Jednak metoda poprzednika jest bardziej optymalna, bowiem nie musisz nic sprawdzać.

Czyli tak? tylko dalej jest pełny

if(j==1 || j==a && i==1 || i==a)

|| zamiast &&

On jest pusty a nie pełny …

Wstawiłem potoki zamiast ampersantów ale to nic nie dało