xiaoxaio.. 2021-02-19 13:00 采纳率: 78.9%
浏览 31
已结题

为什么我这个通不过呢?

#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;
}

  • 写回答

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;
    }

    评论

报告相同问题?