CS50 Марио больше: Хотите знать, если код эффективен? - PullRequest
0 голосов
/ 17 февраля 2020

Я недавно начал курс CS50, и я хотел знать, есть ли способы оптимизировать код или это был самый эффективный способ сделать на этом этапе.

void mariomore(int);
int main(void)
{
    int h;
    do
    {
        h = get_int("Height: ");
    }
    while (h <= 0 || h >= 9); //limiting the height of the pyramid
    mariomore(h);
}

void mariomore(int h)
{
    for (int i = 0; i < h; i++) // This for is to print the # rows
    {
        for (int k = h - 1; k > i; k--) //This for is to print the spaces
        {
            printf(" ");
        }
        for (int j = 0; j < i; j++) //This for is to print the # columns
        {
            printf("#");
        }
        printf("#"); 
        printf("  "); //to print space. to valid check with $$
        for (int m = 0; m < i; m++) //to print second half of pyramid
        {
            printf("#");
        }
        printf("#\n");
    }
}

1 Ответ

0 голосов
/ 03 марта 2020

Я сделал очень мало изменений. Вы действительно можете удалить лишние printf("#"); строки и поместить их в циклы, просто запустив циклы с дополнительным экземпляром.

Тем не менее, ваш код выглядит достойно. Вы можете добавлять предупреждения, когда пользовательский ввод для высоты не между 1-9. Я пропустил эту часть, так как это не то, что вас интересует, я думаю.

void mariomore(int);
int main(void)
{
    int h;
    do
    {
        h = get_int("Height: ");
    }
    while (h <= 0 || h >= 9); //limiting the height of the pyramid
    mariomore(h);
}

void mariomore(int h)
{
    for (int i = 0; i < h; i++) // This for is to print the # rows
    {
        for (int k = h - 1; k > i; k--) //This for is to print the spaces
        {
            printf(" ");
        }
        for (int j = 0; j < i + 1; j++) //This for is to print the # columns
        {
            printf("#");
        }
        printf("  "); //to print space. to valid check with $$
        for (int m = 0; m < i + 1; m++) //to print second half of pyramid
        {
            printf("#");
        }
        printf("\n");
    }
}
...