黑马程序员技术交流社区

标题: if-else-if预测娃娃身高 [打印本页]

作者: ySssssssss    时间: 2016-3-25 21:44
标题: if-else-if预测娃娃身高
/*

每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。小孩成人后身高与其父母身高和自身性别密切相关。  男性成人时身高 = (父亲身高 + 母亲身高) * 0.54(cm) 女性成人时身高 = (父亲身高* 0.923 + 母亲身高) / 2(cm)  此外,如果喜爱体育锻炼,那么可增加身高2%,如果有良好的卫生饮食习惯,那么可增加身高1.5%. 请编写程序从控制台接收小孩的性别与父母的身高及其它相关数据,根据以上公式算出小孩成人时的身高

   分析:
     判断小孩的性别
     如果是男孩儿 (父亲身高 + 母亲身高) * 0.54(cm)

     如果是女孩儿( 父亲身高* 0.923 + 母亲身高) / 2(cm)

     如果喜爱锻炼,身高可增加2%,如果有良好的卫生饮食习惯,身高可增加1.5%

*/

#include <stdio.h>

int main()
{
    //定义变量 父亲身高 母亲身高 孩子身高 增加的身高
    double fatherHeight = 0,motherHeight = 0,babyHeight = 0,add_1 = 0,add_2 = 0;
    //性别
    int sex = 0;
    printf("请输入父亲的身高(cm):");
    scanf("%lf",&fatherHeight);
    printf("请输入母亲的身高(cm):");
    scanf("%lf",&motherHeight);
    printf("请输入小孩儿的性别(0.男 1.女):");
    scanf("%d",&sex);
    //判断性别
    //男孩儿
    if (sex == 0)
    {
        babyHeight = (fatherHeight + motherHeight)*0.54;
        printf("遗传身高是:%.2lfcm\n",babyHeight);
        add_1 = 0.02 * babyHeight;
        printf("如果喜爱锻炼,身高可增加%.2lfcm\n",add_1);
        add_2 = 0.015 * babyHeight;
        printf("如果有良好的卫生饮食习惯,身高可增加%.2fcm\n",add_2);
    }
    //女孩儿
    else if (sex == 1)
    {
        babyHeight = (fatherHeight * 0.93 + motherHeight)/2;
        printf("遗传身高是:%.2lfcm\n",babyHeight);
        add_1 = 0.02 * babyHeight;
        printf("如果喜爱锻炼,身高可增加%.2lfcm\n",add_1);
        add_2 = 0.015 * babyHeight;
        printf("如果有良好的卫生饮食习惯,身高可增加%.2fcm\n",add_2);
    }
    //这个是...
    else
    {
        printf("这...我还不会判断\n");
    }


    return 0;
}


作者: 15527933998    时间: 2016-3-25 22:03

#include <stdio.h>
#include <string.h>

int main()
{
    //定义变量 父亲身高 母亲身高 孩子身高 增加的身高
    double fatherHeight = 0,motherHeight = 0,babyHeight = 0,add_1 = 0,add_2 = 0;
    //性别
    char sex[6];
    char boy[6] = "男";
    char girl[6] = "女";
    printf("请输入父亲的身高(cm):");
    scanf("%lf",&fatherHeight);
    printf("请输入母亲的身高(cm):");
    scanf("%lf",&motherHeight);
    printf("请输入小孩儿的性别(男或女):");
    scanf("%s",sex);
    //判断性别
    //男孩儿
    if (strcmp(sex,boy) == 0)
    {
        babyHeight = (fatherHeight + motherHeight)*0.54;
        printf("遗传身高是:%.2lfcm\n",babyHeight);
        add_1 = 0.02 * babyHeight;
        printf("如果喜爱锻炼,身高可增加%.2lfcm\n",add_1);
        add_2 = 0.015 * babyHeight;
        printf("如果有良好的卫生饮食习惯,身高可增加%.2fcm\n",add_2);
    }
    //女孩儿
    else if (strcmp(sex,girl) == 0)
    {
        babyHeight = (fatherHeight * 0.93 + motherHeight)/2;
        printf("遗传身高是:%.2lfcm\n",babyHeight);
        add_1 = 0.02 * babyHeight;
        printf("如果喜爱锻炼,身高可增加%.2lfcm\n",add_1);
        add_2 = 0.015 * babyHeight;
        printf("如果有良好的卫生饮食习惯,身高可增加%.2fcm\n",add_2);
    }
    //这个是...
    else
    {
        printf("这...我还不会判断\n");
    }
   
   
    return 0;
}
作者: 15527933998    时间: 2016-3-25 22:08
感觉男孩输入0,女孩输入1.这个不好   
直接输入男或女的汉字更好些,  其他都没有问题





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2