Итак, я беру курс cs50 и решаю задачу mario.c больше из pset 1
Я на самом деле решил это с 3 для циклов, но я хотел реорганизовать его всего с 2 циклами, и я придумал этот код, который дает следующее решение для "высоты: 5"
Result:
# #
## ##
### ###
#### ####
##### #####
#include <stdio.h>
int main(void)
{
int side = 5;
int max = side + 2;
for (int i = 1 ; i <= side ; i++)
{
int j = 1;
while(j != max+1)
{
if(j <= side-i)
{
printf(" ");
j++;
}
else if(j > side-i && j < side+1)
{
printf("#");
j++;
}
else if(j == side+1)
{
printf(" ");
j++;
}
else
{
printf("#");
j++;
}
}
max++;
printf("\n");
}
}
Мне бы хотелось узнать, можете ли вы, ребята, показать мне более элегантное решение, поскольку я думаю, что это слишком ... повторяющееся.
Кроме того, возможно ли использовать случай переключения вместо многих других, если? Пытался это сделать, но код не принимал логические значения для j: (
Заранее спасибо! :)