我正在制作一副纸牌.卡是结构
struct card{
char* suit;
char* face;
};
Run Code Online (Sandbox Code Playgroud)
而甲板上只是一组卡片结构.
for(s = 0; s < sizeof(SUITS); s++){
for(f = 0; f < sizeof(FACE); f++){
thisCard.suit = SUITS[s];
thisCard.face = FACE[f];
deck[cardNum]=thisCard;
cardNum++;
}
Run Code Online (Sandbox Code Playgroud)
套装和面部是具有所有套装和阵列的阵列
const char* SUITS[] = {"Spades", "Diamonds", "Clubs", "Hearts"};
const char* FACE[] = {"ACE", "ONE", "TWO", "THREE", "FOUR","FIVE",
"SIX", "SEVEN", "EIGHT", "NINE", "TEN", "JACK", "QUEEN", "KING"};
Run Code Online (Sandbox Code Playgroud)
然后我用这种格式的西装面打印出甲板
for(cardNum= 0; cardNum < DECKSIZE; cardNum++){
thisCard = deck[cardNum];
printf("%s of %s \n",thisCard.face,thisCard.suit);
}
Run Code Online (Sandbox Code Playgroud)
所以我在这里遇到很多问题.我不确定我制作阵列的方式是否有效.看来,当我这样做时,我不会穿着西装.我知道它编译了一个警告,因为我使用const字符串作为我的常规struct事物.但我不确定为什么它不能很好地工作.
sizeof(SUITS)为您提供SUITS以字节为单位的大小.另一方面,您的循环需要输入的条目数SUITS,而不是字节数.用于计算的数组元素的计数的共同诀窍是除以sizeof(SUITS)由sizeof(SUITS[0]):
for(s = 0; s < sizeof(SUITS)/sizeof(SUITS[0]); s++) {
for(f = 0; f < sizeof(FACE)/sizeof(FACE[0]); f++) {
deck[cardNum].suit = SUITS[s];
deck[cardNum].face = FACE[f];
cardNum++;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
104 次 |
| 最近记录: |