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

C 如果声明不适用于婚姻状况,c,if-statement,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

我正在创建一个程序,要求用户输入他们的婚姻状况。 我希望能够询问他们是或否,然后使用
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");



}
#包括
内部主(空)
{
智力年龄;
查尔马尔;
printf(“请输入您的年龄:\n”);
扫描单位(“%d”和年龄);
getchar();//getchar()用于清除任何缓冲区中可能存储的任何剩余击键。
printf(“你结婚了吗?(是/否)\n”);
scanf_s(“%c”&marr);
如果(marr=='y')
printf(“已婚”);
其他的
printf(“未婚”);
}
出于某种原因,无论我输入什么,我仍然以
的形式获得输出,
不知道为什么。

在这种情况下,请使用
scanf()
而不是
scanf\u()。您也可以在
scanf()
-语句中的
%c
前面放置空格,而不是
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");

}
#包括
内部主(空){
智力年龄;
查尔马尔;
printf(“请输入您的年龄:\n”);
scanf(“%d”和年龄);
printf(“你结婚了吗?(是/否)\n”);
scanf(“%c”和&marr);
如果(marr=='y')
printf(“已婚”);
其他的
printf(“未婚”);
}
在这种情况下,请使用
scanf()
而不是
scanf\u()
,否则,如果输入参数是字符,则需要一个缓冲区大小参数。您也可以在
scanf()
-语句中的
%c
前面放置空格,而不是
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");

}
#包括
内部主(空){
智力年龄;
查尔马尔;
printf(“请输入您的年龄:\n”);
scanf(“%d”和年龄);
printf(“你结婚了吗?(是/否)\n”);
scanf(“%c”和&marr);
如果(marr=='y')
printf(“已婚”);
其他的
printf(“未婚”);
}

检查scanf的返回,然后打印出您收到的字符。您能详细说明一下吗?对不起,我不明白你在说什么。在未检查其返回值的情况下,切勿使用诸如
scanf
之类的IO函数。只有在没有错误时才继续。此外,函数应该已经将值写入变量
marr
。查看该变量的内容是否如您所期望的那样。检查
scanf
的返回,然后打印出您收到的字符。您能详细说明一下吗?对不起,我不明白你在说什么。在未检查其返回值的情况下,切勿使用诸如
scanf
之类的IO函数。只有在没有错误时才继续。此外,函数应该已经将值写入变量
marr
。查看该变量的内容是否如您所期望的那样。