无法打破"while"循环 - C

Jam*_*ing 1 c while-loop

我正在尝试实现一个简单的while循环让用户输入多个标记,而不必重新加载应用程序,由于某种原因,无论我似乎进入它总是循环.

我看起来使用调试器,它似乎不接受最后的scanf()询问是否重复自己.

int mark = 0;
    char grade;
    char choice = 'y';

    while(choice == 'y')
    {
        //Request input
        printf("enter a mark: ");
        scanf("%d", &mark);

        //Assess mark
        grade = assess(mark);

        //Output result
        printf("That equals ");
        printf("%c", grade);
        printf(" when graded\n");

        //Repeat?
        printf("Again?...\n");
        fflush(stdin);
        scanf("&c", &choice);
    }
Run Code Online (Sandbox Code Playgroud)

我也尝试了一个do-while循环但仍然没有快乐,任何想法可能存在的问题?

小智 8

至少有两个问题:

  fflush(stdin);
Run Code Online (Sandbox Code Playgroud)

未定义 - 您只能刷新输出流.和:

    scanf("&c", &choice);
Run Code Online (Sandbox Code Playgroud)

应该:

    scanf("%c", &choice);
Run Code Online (Sandbox Code Playgroud)