for 循环内的 for 循环与 if else 条件

for loop inside a for loop with if else condition

for (x = 0; x < 4; x++) {
    for (int a = 22; a <= 62;) {
        if (isCooked[x] == 1) {
            gotoxy(a,3); printf("cooked");
            gotoxy(a,4); printf("%-10s",food[userServings[x]]);
            a += 12;
        } else {
            gotoxy(a,3); printf("!");
            gotoxy(a,4); printf("%-10s",food[userServings[x]]);
            a += 12;
        }
    }
}

input output

请问上面的循环和条件有什么问题。我正在尝试打印我选择的 4 种蔬菜的名称。通过使用 gotoxy 我想在循环中的给定坐标上打印它们。

在 c 中你不能在任何地方声明变量。您已经在内部 for 循环中声明了 int a。

您应该只计算 gotoxy 坐标,而不是第二个循环:

for (x = 0; x < 4; x++) {
    int a = 22 + x * 12;

    if (isCooked[x] == 1) {
        gotoxy(a, 3); printf("cooked");
        gotoxy(a, 4); printf("%-10s", food[userServings[x]]);
    } else {
        gotoxy(a, 3); printf("!     ");
        gotoxy(a, 4); printf("%-10s", food[userServings[x]]);
    }
}

在你的程序中 x 没有声明