问题描述
- c语言,找出最瘦的人的程序
-
BMI=w / h^2
设计一个输入若干个人的名字 身高 体重的时候,输出BMI值最小的人的程序。
输入分为若干行。各行以名字 身高(cm) 体重(kg)的顺序输入。完成后以ctrl-d结束。
输入完成后输出BMI最小的人的名字输入例
taro 183.3 65.5
syo 177.9 63.8
taisuke 173.1 61.1
ryo 175.4 60.0
输出例
taro
求大神帮忙 真的完全没有思路
解决方案
类似这样
#include<stdio.h>
int main(void){
double height,weight, bmi = 9999.0;
char name[32] = {0};
char res[32] = {0};
while(scanf("%s%lf%lf", name, &height, &weight) != EOF)
{
double cur_bmi = weight / (height * height);
if(cur_bmi < bmi)
{
bmi = cur_bmi;
strcpy(res, name);
}
}
printf("%sn", res);
}
解决方案二:
c语言和c++有什么本质区别能解释一下吗?
解决方案三:
大神求解。。。。。。。。。。。。。
解决方案四:
我感觉用结构体好些。
int i,n,y;
double m[30],x;
struct
{
char name[20];
double weight;
double height;
}bmi[30] ;
printf("请输入比较的人数n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("请输入第%d个学生的数据n",i+1);
scanf("%s%lf%lf",bmi[i].name,&bmi[i].height,&bmi[i].weight);
m[i]=bmi[i].weight/bmi[i].height/bmi[i].height;
}
for(i=1,x=0;i<n;i++)
{
x=m[0];
y=0;
if(m[i]<=m[i-1])
{
y=i;
x=m[i];
}
}
printf("bmi最小的是%stbmi值为:%f",bmi[y].name,x);
把每个人的bmi放到数组m中,利用冒泡得出最小的bmi值和下标y。bmi[y].name找到最小值的姓名及其他信息
时间: 2024-10-01 16:06:32