我是小鸟,简单C问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 17:43:17
main()
{ int x;
char y;
printf("请输入性别,男性请输入a,女性请输入b\n");
scanf("%c",&y);
printf("请输入年龄\n");
scanf("%d",&x);

if (y=='a'||y=='A')
if (x<60) printf("正在工作");
else printf("不工作");
else
if (x<55) printf("正在工作");
else printf("不工作");
}
这个可以正确编译
如果把前第四行和第五行换到下面运行就不正确???
main()
{ int x;
char y;
printf("请输入年龄\n");
scanf("%d",&x);
printf("请输入性别,男性请输入a,女性请输入b\n");
scanf("%c",&y);
if (y=='a'||y=='A')
if (x<60) printf("正在工作");
else printf("不工作");
else
if (x<55) printf("正在工作");
else printf("不工作");
}

我用DEV-C++编译器

因为更换之后你输入年龄后敲的那一下回车就被视为你输入了性别了,所以不行。
你可以这样改改:
加入#include <conio.h>
然后
printf("请输入年龄\n");
scanf("%d",&x);
getchar();
printf("请输入性别,男性请输入a,女性请输入b\n");
scanf("%c",&y);
加入这样一个语句,也可以再注册一个不需要的字符
char c;
cin>>c
这样也可以。