C语言中enum能不能自减? 20

C语言enum{a=10,b,cd,e,f}结果:b=11,c=12,d=13,e=14,f=15怎么样能enuma=10,b,cd,e,f后得到b=9,c=8,d=7,... C语言
enum{
a=10,b,c d,e,f
}
结果:b=11,c=12,d=13,e=14,f=15
怎么样能enum a=10,b,c d,e,f后得到
b=9,c=8,d=7,e=6,f=5
难道要自己define一个enum?
stp111的回答很好。HarrySummer 的回答可行,岱鲁老乡的回答也很有道理。
但是我需要enum的常量有几十个,只知道最后一个常量是255,而且常量的数目可能会随时更改。如果f = 5,,那就要去数几十个常量,很容易出错。所以才有此提问。
我知道这个提问很无理,辛苦大家了。
展开
 我来答
stp111
2010-11-20 · TA获得超过341个赞
知道小有建树答主
回答量:283
采纳率:0%
帮助的人:225万
展开全部
enum定义中的值是自增加的(++)操作。
如果要指定特殊值,可以手动指定。如:
enum {
a = 10,
b = 9,
c = 8,
d = 7,
e = 6,
f = 5,
};
如果不想这么做,也可以直接把变量名反过来。
enum {
f = 5,
e,
d,
c,
b,
a
};

参考资料: c 手册

岱鲁
2010-11-20 · TA获得超过437个赞
知道小有建树答主
回答量:127
采纳率:0%
帮助的人:143万
展开全部
enum 中的值相当于常量
其值为:如果第一个元素a赋值,则后面的元素的值依次加1;如果第一个元素未赋值,则默认为0.
不能自加,更不能依次递减
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HarrySummer
2010-11-20 · TA获得超过680个赞
知道小有建树答主
回答量:650
采纳率:0%
帮助的人:573万
展开全部
如此问题,不如自己定义几个宏,形如:
#define a 10
来得方便
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xlcsq69
2010-11-25 · TA获得超过7424个赞
知道小有建树答主
回答量:1811
采纳率:0%
帮助的人:816万
展开全部
#include<stdio.h>
void func(int int_array[][4]);
void main()
{
int array[3][4]=;
func(array);
}
void func(int int_array[][4])
{
int max,min;
int max_h,max_l,min_h,min_l;
max=int_array[0][0];
min=int_array[0][0];
for(int i=0;i<3;i++)
for(int j=0;j<4;j++)
{

if(max<int_array[i][j])
{
max=int_array[i][j];
max_h=i+1;
max_l=j+1;
}
if(min>int_array[i][j])
{
min=int_array[i][j];
min_h=i+1;
min_l=j+1;
}
}
printf("矩阵中的最大值是%d,它位于%d行%d列\n",max,max_h,max_l);
printf("矩阵中的最大值是%d,它位于%d行%d列\n",min,min_h,min_l);
}
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。你的串号我已经记下,采纳后我会帮你制作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aklga82
2010-11-28 · TA获得超过375个赞
知道答主
回答量:232
采纳率:0%
帮助的人:127万
展开全部
#include<stdio.h>
void func(int int_array[][4]);
void main()
{
int array[3][4]=;
func(array);
}
void func(int int_array[][4])
{
int max,min;
int max_h,max_l,min_h,min_l;
max=int_array[0][0];
min=int_array[0][0];
for(int i=0;i<3;i++)
for(int j=0;j<4;j++)
{

if(max<int_array[i][j])
{
max=int_array[i][j];
max_h=i+1;
max_l=j+1;
}
if(min>int_array[i][j])
{
min=int_array[i][j];
min_h=i+1;
min_l=j+1;
}
}
printf("矩阵中的最大值是%d,它位于%d行%d列\n",max,max_h,max_l);
printf("矩阵中的最大值是%d,它位于%d行%d列\n",min,min_h,min_l);
}
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式