为什么我的 while 循环没有在这个 switch case 中重复?

Why my while loop in not getting repeated in this switch case?

#include <stdio.h>
int main()
{
    int a;
    scanf("%d", &a);
    int if_again = 1;
    int c = 1;
    switch (a)
    {
    case 1:
        while (if_again == 1)
        {
            scanf("%d", c);
            if (c == 1)
            {
                if_again == 1;
            }
            else
            {
                if_again == 0;
            }
        }
    }
    return 0;
}

它只在输入两次 1 后终止,但它应该一直重复直到输入 0。我的代码有什么问题?

scanf 需要你给它的变量的基地址。所以 scanf("%d, c); 需要 scanf(%d, &c);

下面的代码也是错误的:

if (c == 1)
{
   if_again == 1;
}

编译器认为您是在将“if_again”与 1 进行比较。我认为您是在尝试将变量设置为 1?在那种情况下这样做:

if (c == 1)
{
   if_again = 1;
}

else语句也是如此。

还有,为什么会有switch语句?如果你想看到它a是1,那么就给一个if