企鹅家的马达加斯 2016-11-27 00:53 采纳率: 50%
浏览 7175
已采纳

c语言算法 输入身高和体重,根据体重/身高的平方来判断身体是否超重

#include
int main(void)
{
int T,i;
float M,H,BIM;
while(scanf("%d",&T)!=EOF)
{
for(i=1;i<T;i++)
{
scanf("%f %f",&M,&H);

        BIM=M/(H*H);
        if(BIM<18.5)
        {
            printf("Underweight\n");
        }
        else if(BIM>=23)
    {
        printf("Over weight\n");
    }
    else
    {
        printf("Normal\n");
    }
}
}
return  0;

为什么T控制不了个数了,谢谢。

  • 写回答

4条回答 默认 最新

  • Acinek 2016-11-27 03:49
    关注

    这个是对限定人数进行检测:检测完毕就退出了
    图片说明
    #include
    #include
    int main(void)
    {
    /*
    *如果楼主是想在对T个人检查完毕后程序就退出的话就要break循环才行
    */
    //这里的T是相当于指人的个数
    //i是楼主拿来循环累加次数的变量
    int T,i;
    //M H是身高和体重 BIM是计算结果
    float M,H,BIM;
    //提示一下 不然输入的是什么数字都不知道
    printf("请输入人的个数:");
    //这个是输入数字赋值给T 控制人的个数
    while(scanf("%d",&T)!=EOF)
    {
    printf("定义的人个数为:%d\n\n",T);
    //遍历人的个数 并输出每个人的身高体重参数
    for(i=1;i<=T;i++)
    {
    printf("请输入第 %d 个人身高体重参数(格式:身高 体重):",i);
    scanf("%f %f",&M,&H);
    BIM=M/(H*H);
    //判断
    if(BIM {
    printf("检测结果:Underweight\n\n");
    }
    else if(BIM>=23)
    {
    printf("检测结果:Over weight\n\n");
    }
    else
    {
    printf("检测结果:Normal\n\n");
    }
    }
    //检查完过后用break退出循环
    //执行完for循环之后i++会使得i比T大1所以写i>=T
    if(i>=T){
    printf("检测完毕!");
    break;
    }
    }
    //这句代码阻止运行结束之后dos窗口闪退
    //使用这句代码要#include
    system("pause");
    return 0;
    }

    因为网站会屏蔽一些关键字代码图如下
    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?