关于枚举变量 自增问题

2025-03-04 16:13:30
推荐回答(2个)
回答1:

#include "stdio.h"
void main()
{
//enum body{ a,b,c,d } month[31],j;
enum body{ a,b,c,d } ;
int month[31]; //不要为枚举量就行了,这样才可以自增自减等运算。
int j; //j不要为枚举量就行了,这样才可以自增自减等运算。
int i;
j=a;
for(i=1;i<=30;i++)
{
month[i]=j;
j++; //你错地很简单,你定义时把j定义为了枚举变量,而枚举变量是常量,一旦定义后(要么默认自动初始化值,从0开始,要么你在定义的最初就给了值。)
if (j>d) j=a; //因此常量不可以有自增,++,--,自除,自乘的运算,以及其值不能被改变,其他大多均可的。
}
for(i=1;i<=30;i++)
{
switch(month[i])
{
case a:printf(" %2d %c\t",i,'a'); break;
case b:printf(" %2d %c\t",i,'b'); break;
case c:printf(" %2d %c\t",i,'c'); break;
case d:printf(" %2d %c\t",i,'d'); break;
default:break;
}
}
printf("\n");
}
//总之定义为枚举变量的,其以后的值均不可以再被改变,任何可以改变其值得运算都是非法的,编译器会报错,如自++,---,自乘自除。
估计不是书的问题,可能你打错了,或者看错了。

满意请选为最佳答案!
谢谢
不懂,还可以问清楚的。我都知道。

回答2:

j = (body)(j + 1);