#include<stdio.h>
enum fruits{watermelon,peach,strawberry,banana,pineapple,apple};
int main()
{
int x;
enum fruits y;
char a[][20]={"watermelon","peach"."strawberry","banana","pineapple","apple"};
printf("请输入一个数x(0~5)");
scanf("%d",&x);
y=(enum fruits)x;
printf("%s\n",a[y]);
return 0;
}
为什么我这个通不过呢?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
小白小白你好菜 2021-02-19 14:34关注你的y值已经是输入数字所对应的字符串了(也不能说是字符串类型,可以理解为枚举类型的字符串,用%s输出会报错),那还怎么用字符串去当二维字符数组的下标呢?
比如,你输入了1,那么y="peach",a["peach"]??能不报错吗,,,
而且你的二维字符组a中“peach"后面接的是英语句号,应该是逗号
#include<stdio.h>
enum fruits{watermelon, peach, strawberry, banana, pineapple, apple};
int main()
{
int x;
enum fruits y;
char a[][20]={"watermelon","peach","strawberry","banana","pineapple","apple"};
printf("请输入一个数x(0~5)");
scanf("%d",&x);
y=(enum fruits)x;
switch(y){
case watermelon:
printf("watermelon"); break;
case peach:
printf("peach"); break;
case strawberry:
printf("strawberry"); break;
case banana:
printf("banana"); break;
case pineapple:
printf("pineapple"); break;
case apple:
printf("apple"); break;
}
return 0;
}评论 打赏 举报解决 1无用