输入若干个学生的体重,以负数或零结束, 求最重、最轻、平均体重,并统计体重超过 平均体重的人数。

#include <stdio.h>
void main()
{
int num,max=0,min=0;
float aver,total=0,a=0;
printf("输入学生体重,以负数或零结束:");
for(scanf("%d",&num);num>0;a++)
{
total+=num;
if(num>max) max=num;
else if(min<num) min=num;
scanf("%d",&num);
}
aver=total/a;
printf("最重%dkg\n",max);
printf("最轻%dkg\n",min);
printf("平均体重是%.0fkg\n",aver);

}
运行结果:
输入学生体重,以负数或零结束:50 60 70 0
最重70kg
最轻0kg
平均体重是60kg
Press any key to continue

这种题目用while比较好
你代码的问题是min初始值不能设置为0,这样min肯定一直是0的。要设初始值为100

#include <stdio.h>
int main()
{
    float score,min = 100,max = 0,total = 0,num = 0;
    printf("输入学生体重,以负数或零结束:");
    scanf("%f",&score);
    while(score > 0)
    {
        num++;
        total += score;
        if(max < score)
            max = score;
        if(min > score)
            min = score;
        scanf("%f",&score);
    }
    printf("最重%.0fkg\n",max);
    printf("最轻%.0fkg\n",min);
    printf("平均体重是%.0fkg\n",total/num);
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632