output — Вывод квадратной формы C ++ с использованием ‘*’

Здравствуйте, я очень новичок в программировании, и моя задача — выводить фигуры. Первый квадрат:

int main(){
unsigned size;
cout <<"Size: ? ";
cin >>size;
for ( unsigned r = 0; r < size; r++ ){ // Square
for ( unsigned c = 0; c < size ; c++ )
if ( r == c )
cout <<'*';
cout <<endl;
}
cout <<endl;
}

Когда я ввожу «5» после запроса. Результат приводит к:
5

*

*

*

*

*

Может кто-нибудь объяснить, что не так с моим кодом? Мне нужно иметь как горизонтальные, так и вертикальные выходы. Спасибо

0

Решение

#включают <iostream>
использование пространства имен std;

int main () {
размер без знака;
bool solid = true; // сплошная или полая форма?
соиЬ <<"Размер:?";
CIN >>размер;
размер = 5;
соиЬ << епсИ;

для (без знака r = 0; r < размер; r ++) {// Квадрат
для (без знака c = 0; c < размер; c ++) {
если (твердый) {
соиЬ << "*";
}
еще {
if (r == 0 || r == size-1 || c == 0 или c == size-1) {
соиЬ << "*";
}
еще {
соиЬ << "";
}
}
}
соиЬ <<епсИ;
}
соиЬ <<епсИ;
}
Выходное отверстие:
* * * * *
* *
* *
* *
* * * * *

Solid:

* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
0

Другие решения

Вы выводите * только по диагонали, когда r совпадает с c. И вы не выводите ничего, кроме некоторых концевых линий, так что в итоге вы получаете только одну звездочку в каждой строке.

1

Печатается * только тогда, когда r == c. Какова цель заявления if?
Попробуйте прокомментировать оператор if и посмотрите результат.

0
По вопросам рекламы [email protected]