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控制不了个数了,谢谢。

c

4个回答

这个是对限定人数进行检测:检测完毕就退出了
图片说明
#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;
}

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

不知道为什么#include 后面的那几个字现实不出来 应该被屏蔽了 我把代码图给楼主:
图片说明

楼主的控制个数是指的什么?指程序无限循环?还是控制数量的T循环次数不对?

这是对所有人检测完毕之后不退出的 可以无限玩:
效果如下图片说明

代码如下:我用的visual studio所以#include加了是根据楼主发的代码改的
#include
int main(void)
{
/*这里我不太清楚楼主的意思
*如果楼主意识是T 的循环次数不对的话
*在for循环里面把i<T改为i<=T T的循环次数就对了
*/

//这里的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<18.5)
        {
            printf("检测结果:Underweight\n\n");
        }
        else if(BIM>=23)
        {
            printf("检测结果:Over weight\n\n");
        }
        else
        {
            printf("检测结果:Normal\n\n");
        }

        //这里判断第一轮是否结束
        if(i==T){
            printf("本轮对%d个人的检测完毕,规定下一轮检测人的个数\n",T);
            printf("请输入人的个数:");
        }
    }
}
return  0;

}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问