原p指数计算机

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

double calculateBMI(double weight, double height);
void printBMICategory(double bmi);
void printHealthAdvice(double bmi);

int main()
{
    int numUsers;
    printf("请输入原神玩家数量:");
    if (scanf("%d", &numUsers) != 1 || numUsers <= 0) {
        printf("错误:请输入一个大于零的整数作为原神玩家数量。\n");
        return 1;
    }
    
    char weightUnit[10], heightUnit[10];
    printf("请选择体重单位(kg/lb):");
    scanf("%s", weightUnit);
    
    printf("请选择身高单位(m/in):");
    scanf("%s", heightUnit);
    
    double totalBMI = 0.0;
    double maxBMI = 0.0, minBMI = 1000.0; 
    
    for (int i = 0; i < numUsers; ++i) {
        double weight, height;
        
        printf("请输入第 %d 位原神玩家的体重(%s)和身高(%s):", i + 1, weightUnit, heightUnit);
        if (strcmp(weightUnit, "kg") == 0) {
            scanf("%lf", &weight);
        } else if (strcmp(weightUnit, "lb") == 0) {
            scanf("%lf", &weight);
            weight *= 0.453592; // 将磅转换为千克
        } else {
            printf("错误:无效的体重单位。\n");
            return 1;
        }
        
        if (strcmp(heightUnit, "m") == 0) {
            scanf("%lf", &height);
        } else if (strcmp(heightUnit, "in") == 0) {
            scanf("%lf", &height);
            height *= 0.0254; // 将英寸转换为米
        } else {
            printf("错误:无效的身高单位。\n");
            return 1;
        }
        
        
        double bmi = calculateBMI(weight, height);
        
        
        printf("此原神玩家 %d 的原P指数为:%.2f\n", i + 1, bmi);
        
        
        printBMICategory(bmi);
        
      
        printHealthAdvice(bmi);
        
        
        totalBMI += bmi;
        if (bmi > maxBMI) {
            maxBMI = bmi;
        }
        if (bmi < minBMI) {
            minBMI = bmi;
        }
        
        printf("\n"); 
    }
    
    
    double avgBMI = totalBMI / numUsers;
    
    
    printf("\n总体统计信息:\n");
    printf("平均原P指数:%.2f\n", avgBMI);
    printf("最高原P指数:%.2f\n", maxBMI);
    printf("最低原P指数:%.2f\n", minBMI);
    
    return 0;
}

double calculateBMI(double weight, double height)
{
    return weight / (height * height);
}


void printBMICategory(double bmi)
{
    printf("原P分类:");
    if (bmi < 18.5) {
        printf("体重不达标,禁止玩原神\n");
    } else if (bmi < 24.9) {
        printf("体重不达标,禁止玩原神\n");
    } else if (bmi < 29.9) {
        printf("基本原神玩家\n");
    } else {
        printf("元老级原神玩家\n");
    }
}


void printHealthAdvice(double bmi)
{
    printf("原神建议:");
    if (bmi < 18.5) {
        printf("您的体重偏轻,请增加玩原神时长。\n");
    } else if (bmi < 24.9) {
        printf("您的体重正常,请增肥,不然自动卸载原神。\n");
    } else if (bmi < 29.9) {
        printf("您的体重超重,感谢你在原神的付出。\n");
    } else {
        printf("您的体重已经超标,原神启动。\n");
    }
}


  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值