低于平均成绩的为什么打印出来不对?

#include <stdio.h>
int main()
{
    float score[10]={40.5,80,57,95.5,0,77,56.2,99.5,59.5,60},max,min,sum=0,ave;
    int i,bjg,m;
      max=min=score[0];
    for (i=0;i<10;i++)
    {
        sum=sum+score[i];
    }
        ave=sum/10;
    
    for (i=0;i<10;i++)
    {    
            if (max<=score[i])
                   max=score[i];
            if (min>=score[i])
                min=score[i];

            if(score[i]<60)
            {
                bjg++;
            }
            if(score[i]<ave)
            {
                m++;
            }
            
            
    }

printf("最高分为:%.1f\n",max);
printf("最低分为:%.1f\n",min);
printf("不及格人数为:%d\n",bjg);
printf("平均成绩为:%.1f\n",ave);
printf("低于平均成绩的人数为:%d\n",m);
}

你要对变量做个初始化操作,

bjg=0;

m=0;

#include <stdio.h>
int main()
{
    float score[10]={40.5,80,57,95.5,0,77,56.2,99.5,59.5,60},max,min,sum=0,ave;
    int i,bjg,m;
    bjg=0;
    m=0;
    max=min=score[0];
    for (i=0;i<10;i++)
    {
        sum=sum+score[i];
    }
    ave=sum/10;
    
    for (i=0;i<10;i++)
    {    
        if (max<score[i])
           max=score[i];
               
        if (min>score[i])
            min=score[i];

        if(score[i]<60)
        {
            bjg++;
        }
        if(score[i]<ave)
        {
            m++;
        }   
    }

	printf("最高分为:%.1f\n",max);
	printf("最低分为:%.1f\n",min);
	printf("不及格人数为:%d\n",bjg);
	printf("平均成绩为:%.1f\n",ave);
	printf("低于平均成绩的人数为:%d\n",m);
}

 

C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y