我的C语言学习笔记<二>

身高预测
每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与
坚持体育锻炼等。小孩成人后身高与其父母身高和自身性别密切相关。
设faHeight为其父身高,moHeight为其母身高,身高预测公式为:
男性成人时身高 = (faHeight + moHeight) * 0.54(cm)
女性成人时身高 = (faHeight * 0.923 + moHeight) / 2(cm)
此外,如果喜爱体育锻炼,那么可增加身高2%,如果有身高预测
每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与
坚持体育锻炼等。小孩成人后身高与其父母身高和自身性别密切相关。
设faHeight为其父身高,moHeight为其母身高,身高预测公式为:
男性成人时身高 = (faHeight + moHeight) * 0.54(cm)
女性成人时身高 = (faHeight * 0.923 + moHeight) / 2(cm)
此外,如果喜爱体育锻炼,那么可增加身高2%,如果有良好的卫生饮食习惯,那么可增加身高1.5%。
编程从键盘输入你的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M表示男性)、父母身高(用实型变量存储,faHeight
为其父身高,moHeight为其母身高)、是否喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、
是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示喜爱,输入字符N表示不喜爱),利用给定公式和身高预测方法对
你的身高进行预测。
良好的卫生饮食习惯,那么可增加身高1.5%。
编程从键盘输入你的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M表示男性)、父母身高(用实型变量存储,faHeight
为其父身高,moHeight为其母身高)、是否喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、
是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示喜爱,输入字符N表示不喜爱),利用给定公式和身高预测方法对
你的身高进行预测。
下面是我写的...


#include"stdio.h"
main()
{
char sex,sports,diet;
double faHeight,moHeight,height;

printf("输入性别(M男/F女)\n");
scanf("%c",&sex);



printf("请输入父亲身高和母亲身高\n");
scanf("%lf%lf",&faHeight,&moHeight);

printf("请输入是否喜欢体育锻炼(Y/N)\n");
scanf("%c",&sports);



printf("请输入是否有良好的饮食习惯(Y/N)\n");
scanf("%c",&diet);



if(sex=='F'||sex=='f')
height=(faHeight*0.923+moHeight)/2;
if(sex=='M'||sex=='m')
height=(faHeight+moHeight)*0.54;
if(sports=='Y'||sports=='y')
height=1.02*height;
if(diet=='Y'||diet=='y')
height=1.015*height;



printf("这个孩子成年时候的身高为%lf厘米\n",height);
}






编译的时候是没有错误的 但是执行的时候
"请输入是否喜欢体育锻炼(Y/N)"和"请输入是否有良好的饮食习惯(Y/N)"

这两行 总是同时出来



改成这个就OK了
#include"stdio.h"
#include"conio.h" /*调用getche()函数需要加这一行至于为什么调它 请用看下面*/
main()
{
char sex,sports,diet;
double faHeight,moHeight,height;

printf("输入性别(M男/F女)\n");
scanf("%c",&sex);

printf("请输入父亲身高和母亲身高\n");
scanf("%lf%lf",&faHeight,&moHeight);

printf("请输入是否喜欢体育锻炼(Y/N)\n");
sports=getche(); /*这里如果用scanf录入的话会出现问题,因为scanf会把回车当成一个字符录 入 会导致y直接录入到diet而跳过sports*/
printf("\n"); /*这个换行符 是用来保持格式美观的*/
printf("请输入是否有良好的饮食习惯(Y/N)\n");
diet=getche(); /*同理*/
printf("\n");

if(sex=='F'||sex=='f')
height=(faHeight*0.923+moHeight)/2;
if(sex=='M'||sex=='m')
height=(faHeight+moHeight)*0.54;
if(sports=='Y'||sports=='y')
height=1.02*height;
if(diet=='Y'||diet=='y')
height=1.015*height;

printf("这个孩子成年时候的身高为%lf厘米\n",height);
}  
还有一种方法 : 在scanf("%c",&sports); 这里 在%c前加个空格也可以哈··
posted @ 2009-03-25 21:24  xiao.ji  阅读(1805)  评论(0编辑  收藏  举报