为什么运行显示不能进行自增操作

#include <stdio.h>
enum clolr{red,white,yellow,blue}i,j,k,p; /enum是枚举类型。该处定义枚举变量/
int main()
{
int n=0,loop;
for(i=red; i<=blue;i++)
for(j=red; j<=blue;j++)
if(i!=j)
for(k=red; k<=blue;)
if((k!=i)&&(k!=j))
{
n++;
printf("\n%d",n);
for(loop=1;loop<=3;loop++)
{
switch(loop)
{
case 1:p=i;break;
case 2:p=j;break;
case 3:p=k;break;
default:;
}
switch(p)
{
case red: printf("\t%s","red"); break;
case white: printf("\t%s","white"); break;
case yellow: printf("\t%s","yellow");break;
case blue: printf("\t%s","blue"); break;
default:;
}
}
}
printf("\ntotal:%5d\n",n);
return 0;
} /题目:编写一个程序实现如下要求。已知一个口袋中有红,白,黄,蓝四种球各若干,
每次取三颗球,打印输出每次取出3种不同颜色的所有颜色的组合及组合数
/

没有定义变量类型

枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值
参考:https://blog.csdn.net/weiwangchao_/article/details/4600046