Я просматриваю онлайн-курс Harvard CS50, и одна из проблем - создать «пирамиду стиля марио», используя пробелы и хэши. У меня есть пространство, но хеши дают мне проблемы. Вот код:Создание «пирамиды стиля Марио»
#include <stdio.h>
#include <cs50.h>
int main(void)
{
//get height between 1 and 23
int height;
do
{
printf("Please enter a height: ");
height = GetInt();
}
while (height < 1 || height > 23);
//build pyramid
for (int i = 0; i < height ; i++)
{
//add spaces
for (int space = height - 1 - i; space >= 0; space--)
printf(" ");
//add hashtags
for (int hash = 2 + i; hash <= height; hash++)
printf("#");
printf("\n");
}
}
Когда я запустить его в терминале с высоты 5 я получаю это:
####
###
##
#
<-- space here also
, когда я хочу это:
##
###
####
#####
######
Любая обратная связь был бы признателен, спасибо
Если вы посмотрите на другие вопросы, отмеченные CS50, есть множество проблем, связанных с этой же проблемой - возможно, на e тех вопросов и ответов поможет. Введите '[cs50] mario' в поле поиска. –
вы смешиваете себя с противоположными петлями. один уменьшается, один увеличивается.просто пойдите с двумя увеличивающимися петлями. второй (хеши) основывается на том, сколько пробелов было выпущено в первом. –
Для себя я бы использовал один цикл и локальную константу, инициализированную 21 пробелом, за которой следуют 23 хэша (SO не позволит мне вставлять itas, это сжимает пробелы). Я оставлю детали для читателя :) Это выиграло ' t дайте вам пирамиду, но рампу – kdopen