我觉得设计错误在结构体
typedef struct _RAINBOW
{
int num_cols;
int cols[7];
char *cols_str[7];
} RAINBOW;
int cols[7];char *cols_str[7];都给定了大小是7了
设置num_cols有什么意义
init()中cols_str[i]前面应该加rbow.吧
char *get_rainbow_colour_str(int colour)中char col_str[5];5个肯定不够
strcpy(col_str, rbow.cols_str[colour]);应该为
strcpy(col_str, rbow.cols_str[colour-1]);
int get_rainbow_colour(char *colour_str)中也有同样错误
for (col_idx = RBOW_RED; col_idx <= RBOW_VIOLET; col_idx++)应为
for (col_idx = RBOW_RED-1; col_idx <= RBOW_VIOLET-1; col_idx++)
而且没有异常处理
比如输入颜色为black就没有返回值
int test_rainbow_colour()中测试的每个语句都有返回值,我觉得应该把他们赋给程序中的变量,不然有什么意义