关于枚举的简单问题,为什么这样编译不通过呢

#include<stdio.h>
enum fruits{watermelon,peach,strawberry,banana,pineapple,apple};
int main()
{
    int k=0;
    enum fruits a,b,c,d;
    char cg[][20]={"西瓜","桃","草莓","香蕉","菠萝","苹果"};
    for(a=watermelon;a<=apple;a++)
     for(b=a+1;b<=apple;b++)
      for(c=b+1;b<=apple;c++)
       for(d=c+1;d<=apple;d++)
         printf("%d:%s %s %s %s\n",++k,cg[a],cg[b],cg[c],cg[d]);
   return 0;
}

枚举类型可以用在循环中,但是要保证类型适配正确,你的代码可以改为:

    for (a = watermelon; a <= apple; a = (fruits)(a+1))
        for (b = (fruits) (a + 1); b <= apple; b = (fruits)(b+1))
            for (c = (fruits) (b + 1); b <= apple; c=(fruits)(c+1))
                for (d = (fruits)(c + 1); d <= apple; d=(fruits)(d+1))

就可以运行成功。