C-字符串数组的初学者在cyklus中初始化后丢失了内容

C-字符串数组的初学者在cyklus中初始化后丢失了内容,c,arrays,C,Arrays,我试图用两个字符串(等级、颜色)制作一个字符串数组,每个字符串代表一张扑克牌组中的一张牌。如果我在作业结束后立即尝试打印卡片,这没关系,但如果我在所有作业结束后尝试打印,则什么都不会发生 我的“代码”: int main(无效) { 字符秩[]=“23456789TJQKA”; 字符颜色[]=“cdhs”; 半焦甲板[52][3]; int k=0; 对于(int i=0;i

我试图用两个字符串(等级、颜色)制作一个字符串数组,每个字符串代表一张扑克牌组中的一张牌。如果我在作业结束后立即尝试打印卡片,这没关系,但如果我在所有作业结束后尝试打印,则什么都不会发生

我的“代码”:

int main(无效)
{
字符秩[]=“23456789TJQKA”;
字符颜色[]=“cdhs”;
半焦甲板[52][3];
int k=0;
对于(int i=0;i<13;i++){
对于(int j=0;j<4;j++){
甲板[k][0]=等级[i];
甲板[k][1]=颜色[j];
甲板[k][2]=0;
k++;
printf(“%s\n”,deck[k-1]);//此打印有效
}
}
printf(“%s\n”,deck[0]);//这不起任何作用(即使我更改了索引)
//--------------------------在这里,我尝试制作所有可能的配对,但甲板现在是空的:(
k=0;
字符对[1327][5];
对于(int i=0;i<51;i++){
对于(intj=0;j<52;j++){/**编辑**-谢谢;)
所有对[k][0]=组[i][0];
所有对[k][1]=组[i][1];
所有对[k][2]=组[j][0];
所有对[k][3]=组[j][1];
所有对[k][4]=0;
k++;
}
}
}

现在一切似乎都好了,谢谢大家

您需要做的是在下面的语句中将
i++
替换为
j++

for (int j = 0; j < 3; i++) 

第一部分在我的测试中起作用。唯一的问题是
printf(“%s\n”,deck[0])之前缺少换行空格//这不起任何作用(即使我更改了索引)
在第二节中,您对
进行了注释,但现在甲板是空的
。既然第2节没有输出,你怎么知道呢?输入
for(int j=0;j<3;i++)
==>
for(int j=0;j<3;j++)
。给每个
printf()
添加一个标签,这样你就可以看到它们是什么:
printf(“卡片:%s\n”,卡片[k-1])
printf(“测试:%s\n,deck[0]);
。然后在定义所有对的部分中添加类似的打印输出。现在您已经更正了
i
j
值,它仍然不起作用吗?
for (int j = 0; j < 3; i++) 
printf("%s\n",deck[0]);    //this does nothing (even if I change index)