Елка из "*" на языке си.Каждая 5-ая "*" заменяется на игрушку "о"

Пытаюсь добавить в елку игрушки, а именно в каждый 5-ый элемент. Пробывал сделать таким образом, но так игрушка ставится в каждый 5-ый элемент строки, а мне нужно вместо каждой 5-ой "*" вобщем.

Код:

int i,k,j;

for(i=1;i<=7;i++)
    {
        for(k=i;k<=20;k++)
            printf(" ");
        for(j=1;j<+2*i;j++)
        {
            if (j%5==0) {
                printf("o");
            }
            else{
                printf("*");
            }
        }
        printf("\n");
    }

Ответы (1 шт):

Автор решения: Mikhailo

Лучше решать задачи обобщенно.

Например, так:

int main() {
    const int HEIGHT = 15;
    const int OFFSET = 20;
    const int FREQ   = 5;

    for (int count = 0, i = 0; i < HEIGHT; ++i) {
        for (int j = 0; j < OFFSET - i; ++j)
            putchar(' ');

        for (int j = 0; j < 2 * i + 1; ++j)
            putchar(count++ % FREQ ? '*' : 'o');

        puts("");
        }
    }
→ Ссылка