#include #include #include #define YELLOW "\033[1;33m#" #define RED "\033[1;31m#" #define BLUE "\033[1;34m#" #define GREEN "\033[1;32m#" #define RESET "\033[0m" static char* lightbulbs[] = {RED, YELLOW, BLUE, GREEN}; typedef struct Garland { char* lightbulbs; unsigned int length; } Garland; Garland generate_garland(unsigned int length); void print_garland(Garland* g); int main () { Garland g = generate_garland(100); print_garland(&g); } Garland generate_garland(unsigned int length) { Garland g; g.lightbulbs = malloc(length * sizeof(char*)); g.length = length; for (unsigned int i = 0; i < length; i ++) { g.lightbulbs[i] = rand() % 4; } return g; } void print_garland(Garland* g) { for (unsigned int i = 0; i < g->length; i ++) { printf("%s", lightbulbs[g->lightbulbs[i]]); } printf(RESET); printf("\n"); }