gpt4 book ai didi

c - If 语句未按预期进行评估

转载 作者:太空宇宙 更新时间:2023-11-04 08:44:25 26 4
gpt4 key购买 nike

我不知道为什么这没有按照我期望的方式进行评估。如果这很明显,我深表歉意。问题在于以下 if 语句:

if (count == cordX && i == cordY) {

它位于一个更大的 while 循环中:

while (count < 10) {
printf("0%d", count);
for (i=0; i < 10; i++) {
if (count == cordX && i == cordY) {
x[i] = 1;
printf("|%d", x[i]);
} else {
printf("|%d", x[i]);
}
}
count++;
printf("|");
printf("\n");
printf("Count : %d\n", count);
}

现在这将打印出列和行的网格。每行的第一列打印为“1”,尽管 cordX 等于“0”并且每次循环运行时计数都会递增。所以它必须只计算 if 语句的“i == cordY”部分,因为 cordY 也等于“0”。这是输出的图片,比我的解释更清楚:

Output: As you can see "count" is clearly incrementing

最佳答案

你的问题不在测试中,是逻辑问题。在第一次迭代时,您的条件得到满足,因此您将 x[i] 设置为 1;从调试输出中我们可以看到这是当 i 为 0 时,因此 x[0] 设置为 1。

然而,在 while 循环的下一次迭代中,x[0] 1,因此它仍将打印 1在第一列。在 else 之后插入一个 x[i]=0 来修复它,尽管为什么首先要将值存储在数组中有点令人费解。

关于c - If 语句未按预期进行评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22261308/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com