基本是/否程序在C中突然结束

时间:2017-02-02 22:14:17

标签: c

我是C语言编码的绝对新手,我试图通过编写一个程序来练习,用户在一系列中回答是/否问题,就像是游戏一样。

我遇到的问题是,在第一个问题得到解答后,第二个问题弹出后,程序不会给我(用户)一个回应它的机会;该计划突然结束。

显然,我必须有一些简单的东西可以让我从一个问题转到另一个问题而不会终止。我很感激任何建议。

这是我到目前为止所做的:

#include <stdio.h>

char answer, answertwo;

int main()
{
    printf ("Are you laughing? (Y/N)\n" );
    scanf ("%c", &answer);

    if (answer == 'y' || answer == 'Y')
        printf("\nGood\n");
    else if (answer == 'n' || answer == 'N')
        printf("\nBye\n");

    printf("Do you want to read? (Y/N)\n ");
    scanf ("%c, &answertwo");
    if (answertwo == 'y' || answertwo == 'Y')
        printf("\nGood\n");
    else if (answertwo == 'n' || answertwo == 'N')
        printf("\nBye\n");

    return 0;
}

1 个答案:

答案 0 :(得分:0)

两件事:

  1. 您在第scanf ("%c, &answertwo");行上有拼写错误,将引号移到第一个参数的末尾:

    scanf ("%c", &answertwo);
    
  2. scanf的第二次调用提前结束,因为它会在第一次调用时消耗stdin中的换行符。尝试将scanf中的格式说明符从"%c"替换为" %c",以便在输入实际字符之前忽略空格。