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

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条)

报告相同问题?

悬赏问题

  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误