summaryrefslogtreecommitdiff
path: root/rushs/tinyprintf/display_square/display_square.c
blob: 9e834d7b795a8f3430cd2a7ae02cf677de167884 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>

void display_square(int width)
{
    if (width <= 0)
    {
        return;
    }

    if (width % 2 == 0)
    {
        width++;
    }

    if (width == 1)
    {
        putchar('*');
        putchar('\n');
        return;
    }

    for (int i = 0; i < width; i++)
    {
        putchar('*');
    }
    putchar('\n');

    for (int i = 0; i < ((width - 3) / 2); i++)
    {
        putchar('*');
        for (int j = 0; j < width - 2; j++)
        {
            putchar(' ');
        }
        putchar('*');
        putchar('\n');
    }

    for (int i = 0; i < width; i++)
    {
        putchar('*');
    }
    putchar('\n');
}