我正在尝试从2个字符串(等级,颜色)制作每个代表扑克牌的一张牌的字符串数组。如果我在分配后立即尝试打印卡,那么没关系,但如果我在所有作业之后尝试打印,则没有任何事情发生。
我的"代码":
int main(void)
{
char rank[] = "23456789TJQKA";
char color[] = "cdhs";
char deck[52][3];
int k = 0;
for (int i = 0; i < 13; i++) {
for(int j = 0; j < 4; j++) {
deck[k][0] = rank[i];
deck[k][1] = color[j];
deck[k][2] = 0;
k++;
printf("%s\n",deck[k-1]); // this print works
}
}
printf("%s\n",deck[0]); //this does nothing (even if I change index)
//-------------------------- here I am trying make all possible pairs but deck is now empty :(
k = 0;
char allPairs[1327][5];
for (int i = 0; i < 51; i++) {
for (int j = 0; j < 52; j++) { //**edit** - thanks ;)
allPairs[k][0] = deck[i][0];
allPairs[k][1] = deck[i][1];
allPairs[k][2] = deck[j][0];
allPairs[k][3] = deck[j][1];
allPairs[k][4] = 0;
k++;
}
}
}
所有人似乎现在都在工作,谢谢你们!
答案 0 :(得分:1)
您需要做的是将i++
替换为以下声明中的j++
for (int j = 0; j < 3; i++)
并在再次打印2c
时注释掉以下行:
printf("%s\n",deck[0]); //this does nothing (even if I change index)