C 为什么';t程序提示其他答案
问题来了 为什么下列程序在提示输入第一个答案后不提示输入其他答案 以下是一些其他详细信息 (c) 保险公司遵循以下规则计算保费。 (1) 如果一个人的健康状况良好,年龄在25至35岁之间,居住在城市且为男性,则保险费为千分之四卢比,其保单金额不得超过20万卢比。 (2) 如果一个人除性别为女性外满足上述所有条件,则保费为千分之三卢比,其保单金额不得超过10万卢比。 (3) 如果一个人的健康状况不佳,年龄在25至35岁之间,居住在村庄,是男性,则保费为千分之六,其保单金额不得超过10000卢比。 (4) 在所有其他情况下,该人未投保。 编写一个程序,输出该人员是否应投保、其保险费率和可投保的最高金额 这是我的代码C 为什么';t程序提示其他答案,c,C,问题来了 为什么下列程序在提示输入第一个答案后不提示输入其他答案 以下是一些其他详细信息 (c) 保险公司遵循以下规则计算保费。 (1) 如果一个人的健康状况良好,年龄在25至35岁之间,居住在城市且为男性,则保险费为千分之四卢比,其保单金额不得超过20万卢比。 (2) 如果一个人除性别为女性外满足上述所有条件,则保费为千分之三卢比,其保单金额不得超过10万卢比。 (3) 如果一个人的健康状况不佳,年龄在25至35岁之间,居住在村庄,是男性,则保费为千分之六,其保单金额不得超过10000卢比。
/* pg 88 G-c
06/07/2012 6:14pm */
#include<stdio.h>
#include<conio.h>
void main() {
char health,live,sex;
int age,insured=0,policy=0,premium;
printf("where is the person living? C or c for city OR V or v for village");
scanf("%c",&live);
printf("enter the health of the person: E or e for excellent OR P or p for poor");
scanf("%c",&health);
printf("what's the Sex of the person? M or m for Male OR F or f for Female");
scanf("%c",&sex);
printf("enter the age of the person");
scanf("%d",&age);
if((health=='E'||health=='e')&&(age>=25&&age<=35)&&(live=='C'||live=='c')&&(sex=='M'||sex=='m')) {
insured=1;
premium=4;
policy=200000;
}
else if((health=='E'||health=='e')&&(age>=25&&age<=35)&&(live=='C'||live=='c')&&(sex=='F'||sex=='f')) {
insured=1;
premium=3;
policy=100000;
}
else if((health=='P'||health=='p')&&(age>=25&&age<=35)&&(live=='V'||live=='v')&&(sex=='M'||sex=='m')) {
insured=1;
premium=6;
policy=10000;
}
if(insured==1) {
printf("the person is insured");
printf("the premium of the person is %d Rs. per thousand",premium);
printf("the policy cannot exceed Rs. %d", policy);
}
else
printf("the person is not insured");
}
/*第88页G-c
2012年7月6日下午6:14*/
#包括
#包括
void main(){
健康、生活、性;
保险金额,投保金额=0,保单金额=0,保险费;
printf(“居住在哪里的人?C或C代表城市,V或V代表村庄”);
scanf(“%c”和“实时”);
printf(“输入此人的健康状况:E或E表示优秀,P或P表示差”);
scanf(“%c”和“运行状况”);
printf(“人的性别是什么?男性是M或M,女性是F或F”);
scanf(“%c”、&sex);
printf(“输入此人的年龄”);
scanf(“%d”和年龄);
如果按enter键时((health=='E'| health='E')&&&&(age>=25&&age=25&&age=25&&age&&age),您还可以添加一个\n
字符,您的scanf()
很乐意接受该字符作为下一个输入。对于您来说,最简单的解决方案是告诉scanf()
读取下一个非空白字符。可以这样做:
scanf(" %c",&health); /* note the added space before %c! */
格式中的此空格将使scanf()
吃掉它找到的任何前导空格字符。按enter键时,还将添加一个\n
字符,您的scanf()
很乐意接受该字符作为下一个输入。在您的情况下,最简单的解决方法是告诉scanf()
读取下一个非空白字符。可按如下方式执行:
scanf(" %c",&health); /* note the added space before %c! */
此格式的空格将使scanf()
吃掉它找到的任何前导空格字符。哇,太棒了,它像一个符咒一样工作:)非常感谢。你能给我推荐一些书,可以帮助我克服这些基本问题吗?scanf()
是一个非常复杂的函数,老实说,我更喜欢一般情况下避免使用它。就书籍而言,我建议使用规范的K&R2:。这是任何严肃的C程序员的“必备品”。我发现我更喜欢scanf(“%C\n”,&health);
在视觉识别方面。谢谢FatalError,我尝试了更多的方法,这样你给出的答案如果我们不遵循,那么scanf会自动存储\n第二个答案,对吗?JAB,谢谢你提供了另一种解决问题的方法:)你们也可以做类似于scanf(%c*%c),&health)的事情;
;*
使其放弃下一步指定的内容。如果我做错了,请有人纠正我。哇,太棒了,它像一个符咒一样工作:)非常感谢。你能给我推荐一些书,可以帮我克服这些基本问题吗?scanf()
是一个非常复杂的函数,老实说,我更喜欢一般情况下避免使用它。就书籍而言,我建议使用规范的K&R2:。这是任何严肃的C程序员的“必备品”。我发现我更喜欢scanf(“%C\n”,&health);
在视觉识别方面。谢谢FatalError,我尝试了更多的方法,这样你给出的答案如果我们不遵循,那么scanf会自动存储\n第二个答案,对吗?JAB,谢谢你提供了另一种解决问题的方法:)你们也可以做类似于scanf(%c*%c),&health)的事情;
;*
使其放弃接下来指定的内容。如果我做错了,请有人纠正我。