 ###### jiankeabcd

2016-04-09 09:01 浏览 1.5k

# c语言，找出最瘦的人的程序

BMI=w / h^2

taro 183.3 65.5

syo 177.9 63.8

taisuke 173.1 61.1

ryo 175.4 60.0

taro

• 点赞
• 写回答
• 关注问题
• 收藏
• 复制链接分享
• 邀请回答

#### 4条回答默认 最新

• 已采纳

类似这样

`````` #include<stdio.h>
int main(void){
double height,weight, bmi = 9999.0;
char name = {0};
char res = {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("%s\n", res);
}
``````
点赞 评论 复制链接分享
• c语言和c++有什么本质区别能解释一下吗？

点赞 评论 复制链接分享
• 大神求解。。。。。。。。。。。。。

点赞 评论 复制链接分享
• 我感觉用结构体好些。

``````     int i,n,y;
double m,x;
struct
{
char    name;
double  weight;
double  height;
}bmi ;
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;
y=0;
if(m[i]<=m[i-1])
{
y=i;
x=m[i];
}
}
printf("bmi最小的是%s\tbmi值为:%f",bmi[y].name,x);
``````

把每个人的bmi放到数组m中，利用冒泡得出最小的bmi值和下标y。bmi[y].name找到最小值的姓名及其他信息

点赞 评论 复制链接分享