问题描述
- 请问下面的代码怎么修改,请大神赐教~~
-
目标:扑克牌的结构表示、
代码如下:
enum suits{CLUBS,DIAMONDS,HEARTS,SPADES};
struct card
{
enum suits suit;
char value[3];
};
struct card deck[52];
char cardval[][3]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
char suitsname[][9]={"CLUBS","DIAMONDS","HEARTS","SPADES"};
main()
{
int i,j;
enum suits s;
clrscr();
for(i=0;i<=12;i++)
for(s=CLUBS;s<=SPADES;s++)
{
j=i*4+s;
deck[j].suit=s;
strcpy(deck[j].value,cardval[i]);
}
for(j=0;j<52;j++)
printf("(%s%3s)%c",suitsname[deck[j].suit],deck[j].value,j%
4==3?'n':'t');
puts("nPress any key to quit...");
getch();
}
解决方案
clrscr();是turbo c才有的
解决方案二:
枚举没有重载过++,直接++是不行的
枚举主要是用来判断类型、状态等地方,如果一定要遍历枚举值,那这个地方不适合枚举,遍历不是枚举的特性
枚举不是数组,只是符号集,相当于你定义的时候就确定了,就算遍历你也得知道所有的符号名,所以你只能自己定义一个数组,然后把枚举值一个一个赋给数组元素,然后对数组进行遍历操作。
时间: 2024-11-16 22:15:13