枚举类型color,根据输入的颜色名称,输出以下六种植物花朵的颜色:
Rose(red), Poppies(orange), Sunflower(yellow), Grass(green), Bluebells(blue), Violets(violet)。如果输入的颜色名称不在枚举类型color中,例如输入purple,请输出I don't know about the color purple.
输入格式:
第一行输入一个n, 代表有n 组询问。( 1 <= n <= 10)
接下来的n行, 每行有一个字符串代表颜色名称,颜色名称最多30个字符。
输出格式:
输出n 行。
每行输出对应颜色的植物名称。
例如:Bluebells are blue. 如果输入的颜色名称不在枚举类型color中,例如purple, 请输出I don't know about the color purple.
输入样例:
3 blue yellow purple
输出样例:
Bluebells are blue. Sunflower are yellow. I don't know about the color purple.
提示:
请用枚举类型实现
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
#include <stdio.h> #include <string.h> // 定义颜色枚举类型 enum color { red, orange, yellow, green, blue, violet, no }w; // 主函数 int main() { // 初始化字符数组用于存储颜色名称 char a[11][31], c[31]; int n, i; // 读取颜色数量 scanf("%d", &n); // 读取颜色名称并存储在数组中 for (i = 1; i <= n; i++) { scanf("%s", a[i]); } // 遍历颜色数组,判断并打印对应的颜色信息 for (i = 1; i <= n; i++) { if (strcmp(a[i], "red") == 0) { w = red; } else if (strcmp(a[i], "orange") == 0) { w = orange; } else if (strcmp(a[i], "yellow") == 0) { w = yellow; } else if (strcmp(a[i], "green") == 0) { w = green; } else if (strcmp(a[i], "blue") == 0) { w = blue; } else if (strcmp(a[i], "violet") == 0) { w = violet; } else { w = no; strcpy(c, a[i]); } // 根据颜色枚举值打印对应的颜色信息 switch (w) { case red: printf("Rose are red.\n"); break; case orange: printf("Poppies are orange.\n"); break; case yellow: printf("Sunflower are yellow.\n"); break; case green: printf("Grass are green.\n"); break; case blue: printf("Bluebells are blue.\n"); break; case violet: printf("Violets are violet.\n"); break; case no: printf("I don't know about the color %s.\n", c); break; } } return 0; }