Это мой первый пост, здесь, надеюсь, я делаю это правильно.
В основном мне нужна помощь, пытаясь выяснить какой-то код, который я написал для класса с использованием C. Цель программы - запросить у пользователя число от 0 до 23. Затем, исходя из числа введенного пользователем, будет напечатана половина пирамиды (например, в старой школе Mario games). Я новичок в программировании и получил ответ на мой код, просто удачи, но теперь я не могу сказать, как мои for-loops обеспечивают цифру пирамиды.
#include <stdio.h>
int main ( void )
{
int user_i;
printf ( "Hello there and welcome to the pyramid creator program\n" );
printf ( "Please enter a non negative INTEGER from 0 to 23\n" );
scanf ( "%d", &user_i );
while ( user_i < 0 || user_i > 23 )
{
scanf ( "%d", &user_i );
}
for ( int tall = 0; tall < user_i; tall++ )
{
// this are the two for loops that happened by pure magic, I am still
// trying to figure out why are they working they way they are
for ( int space = 0; space <= user_i - tall; space++ )
{
printf ( " " );
}
for ( int hash = 0; hash <= tall; hash++ )
{
printf ( "#" );
}
// We need to specify the printf("\n"); statement here
printf ( "\n" );
}
return 0;
}
Будучи новичком в программировании, я следил за тем, что мало знаю о псевдокоде, я просто не могу понять, почему секция for-loop работает так, как она есть. Я прекрасно понимаю цикл while (хотя исправления и лучшие практики приветствуются), но логика for-loop продолжает ускользать от меня, и я хотел бы полностью понять это, прежде чем двигаться дальше. Любая помощь будет принята с благодарностью.