重庆红衣小男孩:一个if语句的嵌套题目(运行有问题:为啥一输入性别就完了)

来源:百度文库 编辑:神马品牌网 时间:2024/04/25 12:14:24
列:已知男士60退休,女士55退休,输入性别、年龄判断他是否退休还是工作。

#include<stdio.h>
void main()

{
int sex;
int age;
printf("男士用m,女士用w");
printf("输入性别");
scanf("%d",&sex);
printf("输入年龄");
scanf("%d",&age);
if(sex=='m')
if(age>=60)
printf("退休");
else
printf("工作");
else
if(age>=55)
printf("退休");
else
printf("工作");

}

你用m和w两个字符来区分性别,那么就不要用%d来输入sex啊,用char sex,然后%c来输入sex。还有,if语句最好用大括号括好,否则很容易出问题。特别是这样的欠套在一起的。

性别 变量定义为int 但是输入是字符型,数据类型不符
将int sex
改为
string sex

int sex; ===>char sex

scanf("%d",&age); ===> scanf("%c",&age);

这么改就可以了,和类型没关系,由于scanf后有回车,会被第2个scanf接受,所以在第一次输入性别的时候把回车过滤就可以了.

#include<stdio.h>
void main()

{
int sex;
int age;
printf("男士用m,女士用w");
printf("输入性别");
sex=getchar();
printf("输入年龄");
scanf("%d",&age);
if(sex=='m')
if(age>=60)
printf("退休");
else
printf("工作");
else
if(age>=55)
printf("退休");
else
printf("工作");

}