#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控制不了个数了,谢谢。
这个是对限定人数进行检测:检测完毕就退出了
#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;
}
楼主的控制个数是指的什么?指程序无限循环?还是控制数量的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;
}