Здравствуйте, я очень новичок в программировании, и моя задача — выводить фигуры. Первый квадрат:
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
*
*
*
*
*
Может кто-нибудь объяснить, что не так с моим кодом? Мне нужно иметь как горизонтальные, так и вертикальные выходы. Спасибо
#включают <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:
* * * * * * * * * * * * * * * * * * * * * * * * *
Вы выводите * только по диагонали, когда r совпадает с c. И вы не выводите ничего, кроме некоторых концевых линий, так что в итоге вы получаете только одну звездочку в каждой строке.
Печатается * только тогда, когда r == c. Какова цель заявления if?
Попробуйте прокомментировать оператор if и посмотрите результат.