根据父母的身高,体育锻炼,饮食习惯等,来预测孩子的身高

本文介绍了一个简单的C语言程序,用于预测孩子的未来身高。程序通过收集父母的身高、孩子的性别及生活习惯等信息,采用不同的计算公式预测男孩和女孩的身高。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

int main(int argc, const char * argv[])
{
    float faHeight = 0,moHeight = 0,childHeight = 0;
    char sex = 0,exercise = 0, henlth = 0;
    printf("请输入父亲的身高(cm):");
    scanf("%f",&faHeight);
    printf("请输入母亲的身高(cm):");
    scanf("%f",&moHeight);
    printf("请输入小孩的性别(男孩输入M,女孩输入F):");
    getchar();
    scanf("%c",&sex);
    printf("是否喜爱体育锻炼('是'输入Y,'否'输入N):");
     getchar();
    scanf("%c",&exercise);
    printf("是否有良好饮食习惯('是'输入Y,'否'输入N):");
     getchar();
    scanf("%c",&henlth);
    switch (sex) {
    case 'M':
         if ( exercise =='Y'&& henlth =='N') {
            childHeight = (faHeight + moHeight) * 0.54*(1 + 0.02);
        }else if (exercise == 'N' &&henlth == 'Y'){
            childHeight = (faHeight + moHeight) * 0.54* (1 + 0.015);
                }else if (exercise == 'Y' &&henlth == 'Y'){
        childHeight = (faHeight + moHeight) * 0.54*(1 + 0.02) * (1 + 0.015);
        }
        else {
            childHeight = (faHeight + moHeight) * 0.54;
        }
        printf("该小孩预测身高为:%.2fcm",childHeight);
       break;
     case 'F':
         if ( exercise =='Y'&& henlth =='N') {
             childHeight = (faHeight * 0.923 + moHeight) / 2*(1 + 0.02);
        } else if (exercise == 'N' &&henlth == 'Y'){
              childHeight = (faHeight * 0.923 + moHeight) / 2 * (1 + 0.015);
        }else if (exercise == 'Y' &&henlth == 'Y'){
             childHeight = (faHeight * 0.923 + moHeight) / 2*(1 + 0.02) * (1 + 0.015);
        }
        else{
             childHeight = (faHeight * 0.923 + moHeight) / 2;
       }
            printf("该小孩预测身高为:%.2fcm",childHeight);
            break;
    }
    return 0;
}

任务描述 每位父母都关心孩子成人后的身高根据生理学和统计分析,孩子身高受遗传、饮食习惯体育锻炼等因素影响,且与父母身高和自身性别密切相关。根据给定的身高预测公式及其他因素,请编写程序预测孩子的成人身高。公式如下: 男性成人时身高 = (父亲身高 + 母亲身高) × 0.54 cm 女性成人时身高 = (父亲身高 × 0.923 + 母亲身高) / 2 cm 同时考虑体育锻炼饮食习惯的影响: 体育锻炼的影响:身高增加2% 良好的饮食习惯的影响:身高增加1.5% 注意:体育锻炼饮食习惯身高的影响采用逐步累乘的方式,饮食习惯的加成应基于体育锻炼影响后的身高,再进行加成,而不是直接在同一个基准身高上同时应用所有的加成。 本关任务:编写一个能计算预测身高的小程序。 相关知识 数据类型及格式化输入输出 %d 读取整数,%f 读取浮点数,%lf 读取双精度浮点数,%c 读取单个字符。 scanf 读取不同类型数据时的缓冲区问题 当 scanf 读取 数值类型(%d、%f、%lf) 时: 它会自动跳过前导空格,因此不会留下空格或换行符在缓冲区。 当 scanf 读取 字符(%c) 时: 它不会跳过空白字符(空格、换行符)。 如果上一次 scanf 读取的是数值,用户按下 Enter 后,换行符 \n 仍然留在缓冲区,导致 %c 可能读取的是 \n 而不是用户输入的字符。常见的解决方案包括: 在 %c 之前加空格。 让 scanf 自动跳过任何前导空白字符(包括空格、换行符和制表符)。例如: scanf(" %c", &ch); 手动清理输入缓冲区。 在读取 %c 之前,使用getchar();读取并丢弃可能残留的空白字符,确保后续读取的字符是用户实际输入的内容。 编程要求 输入: 性别: 一个字符,表示孩子的性别,'M'表示男性,'F'表示女性。 父亲身高: 一个浮动小数,表示父亲的身高(单位:厘米)。 母亲身高: 一个浮动小数,表示母亲的身高(单位:厘米)。 体育锻炼: 一个字符,'Y'表示喜爱体育锻炼,'N'表示不喜爱体育锻炼饮食习惯: 一个字符,'Y'表示有良好的饮食习惯,'N'表示没有良好的饮食习惯。 公式计算:根据给定的公式计算孩子的成人身高,并考虑体育锻炼饮食习惯身高的加成。 输出:输出孩子预测成人身高,保留两位小数。 测试说明 输入输出示例: (注:红框框选部分为用户输入的内容,其余为输出结果)
03-31
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值