C语言编写问题02

来源:百度知道 编辑:UC知道 时间:2024/05/20 06:23:47
#include <stdio.h>

void main()
{
int age;
char gender;
printf("\n请输入您的年龄:");
scanf("%d",&age);
printf("\n请输入您的性别:");
scanf("%c",&gender);
if((age>18)&&(gender=='m'))
printf("\n您有资格得到奖金\n");
else
printf("\n您没有资格得到奖金\n");
}
请问段代码有错误吗?但是生成执行文件后,只要输入年龄回车后,直接就提示”没有资格得到奖金“,无法输入性别
但是改成scanf("%s",&gender);后就没问题了。这是什么原因?

printf("\n请输入您的性别:");
scanf("%c",&gender);
这里接收了输入年龄后的那个转行符
在此之前把这个转行吃掉就行了.

#include <stdio.h>

void main()
{
int age;
char gender;
printf("\n请输入您的年龄:");
scanf("%d",&age);
getchar();
printf("\n请输入您的性别:");

scanf("%c",&gender);
if((age>18)&&(gender=='m'))
printf("\n您有资格得到奖金\n");
else
printf("\n您没有资格得到奖金\n");
}