请定义具有red, orange, yellow, green, blue, violet六种颜色的枚举类型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;
}