我盯着这段代码至少4个小时。
我不确定我做错了什么。
我正在使用简单的for循环更新数组hand[5][2]
。
hand[0][2]
,hand[0][3]
和hand[0][4]
中存储的值会被覆盖。
我使用调试器慢慢地通过每一行,但我仍然没有 明白为什么我会得到不同的价值观。
这是我得到的输出
hand[0][0] = 0
hand[0][1] = 1
hand[0][2] = 2
hand[0][3] = 3
hand[0][4] = 4
hand[1][0] = 0
hand[1][1] = 1
hand[1][2] = 2
hand[1][3] = 3
hand[1][4] = 4
0 1 0 1 2 // WHY ARE hand[0][2],hand[0][3],hand[0][4] not the same????
0 1 2 3 4
代码:
int main() {
//tests();
int hand[5][2];
int a[5], b[5];
char line[100];
int player = 0;
int card = 0;
for (int i = 0; i < 10; i++) {
hand[player][card] = card;
printf("hand[%d][%d] = %d\n", player, card, hand[player][card]);
card++;
if (card == 5) { player++; card = 0; }
}
// print first hand
for (int j = 0; j < 5; j++) {
printf("%d ", hand[0][j]);
}
printf("\n");
// print second hand
for (int j = 0; j < 5; j++) {
printf("%d ", hand[1][j]);
}
printf("\n");
return 0;
}
答案 0 :(得分:4)
int hand[5][2];
应为int hand[2][5];