如果声明不适用于婚姻状况

时间:2015-10-10 19:57:48

标签: c if-statement

我正在创建一个程序,要求用户输入他们的婚姻状况。 我希望能够问他们是或否,然后使用if语句。 我的代码只是跳过if块并打印else块。

#include<stdio.h>


int main(void)
{
int age;
char marr;

printf("Please enter your age: \n");
scanf_s("%d",&age);

getchar();// getchar() is being used to clear any buffer of any remaining      keystrokes that might stll be stored.
printf("Are you married ? (y/n)\n");
scanf_s("%c", &marr);
if (marr == 'y')
    printf("Married\n");
else
    printf("Unmarried\n");



}

出于某种原因,无论我输入什么,我仍然得到unmarried的输出, 不明白为什么。

1 个答案:

答案 0 :(得分:0)

在这种情况下使用scanf()而不是scanf_s(),或者如果输入参数是字符,则需要缓冲区大小参数。您也可以在%c语句scanf()之前的空格中放置一个空格,而不是getchar() - 命令。

#include<stdio.h>

int main(void) {

    int age;
    char marr;

    printf("Please enter your age: \n");
    scanf("%d",&age);

    printf("Are you married ? (y/n)\n");
    scanf(" %c", &marr);
    if (marr == 'y')
        printf("Married\n");
    else
        printf("Unmarried\n");

}