Выравнивание по правому краю клина символов в C - PullRequest
0 голосов
/ 07 мая 2020

Я использую эту функцию:

void wedge(char what, int lines) {
    for (int i = 1; i <= lines; i++) {
        for (int j = 1; j <= i; j++) {
            printf("%c", what);
        }
        printf("\n");
    }
}

И пытаюсь получить следующие варианты вывода:

               #           #   #####   #####
               ##         ##   ####     ####
               ###       ###   ###       ###
               ####     ####   ##         ##
               #####   #####   #           #

Мне удалось получить клинья первого и третьего типа, просто играя с восходящими и нисходящими «i» и «j». Но я не могу сделать второй и четвертый варианты. Я думаю, что они правильно оправданы, но я не знаю, как сделать их такими. Должно быть что-то простое с той же функцией, как это для моего курса C для начинающих.

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

В консоли вы можете сделать отступ с помощью «» (пробел) или «\ t» (табуляция).

В большинстве случаев «» (пробел) более согласован.

Таким образом, второй шаблон может генерироваться следующим образом:

void wedge2(char what, int lines) {
    for (int i = 1; i <= lines; i++) {
        for (int j = 1; j <= lines; j++) {
            if(j<=lines-i)
                printf(" ");
            else
                printf("%c", what);
        }
        printf("\n");
    }
}

, а четвертый шаблон может генерироваться следующим образом:

void wedge4(char what, int lines) {
    for (int i = 1; i <= lines; i++) {
        for (int j = 1; j <= lines; j++) {
            if(j<i)
                printf(" ");
            else
                printf("%c", what);
        }
        printf("\n");
    }
}
0 голосов
/ 07 мая 2020

В строке i вы хотите:

  1. Вывести i хэшей
  2. Вывести lines-i пробелов
  3. Вывести 3 пробела
  4. Вывод lines-i пробелов
  5. Вывод i хэшей
  6. Вывод 3 пробела
  7. Вывод lines-i+1 га sh
  8. Вывод i-1 пробелов
  9. Вывод 3 пробелов
  10. Вывод i-1 пробелов
  11. Вывод lines-i+1 хэшей
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...