C语言求出来的值为什么不对?

C语言,要求用函数求平均分,最高分最低分,再用另一个函数统计各分数段的人数,我写的运行出来最大值都是输入的第一个数,最小值都是0平均值是用第一个数除的n。而且各分数段的人数也不太对。检查了好多遍也不知道怎么改,请问哪里不对呀,万分感谢
/Note:YourchoiceisCIDE/#include"stdio.h"floatmin=0,max=0;voidmain(){floatcalculate(floatarray[],intn);voidcount(floatarray[],intn);floatscore[3],ave;inti;for(i=0;i<3;i++)scanf("%f",&score[i]);ave=calculate(score,3);count(score,3);printf("max=%6.2f\nmin=%6.2f\naverage=%6.2f\n",max,min,ave);}floatcalculate(floatarray[],intn){inti;floataver,sum=array[0];min=max=array[0];for(i=1;i<n;i++){if(max<array[i])max=array[i];if(array[i]<min)min=array[i];sum+=array[i];}aver=sum/n;return(aver);}voidcount(floatarray[],intn){intcount1,count2,count3,count4,count5,i;count1=count2=count3=count4=count5=0;for(i=0;i<n;i++){if(array[i]<60){count1++;}elseif(array[i]>=60&&array[i]<69){count2++;}elseif(array[i]>=70&&array[i]<79){count3++;}elseif(array[i]>=80&&array[i]<89){count4++;}else{count5++;}}printf("<60%d%.2f\n",count1,(float)count1/n100);printf("60-69%d%.2f\n",count2,(float)count2/n100);printf("70-79%d%.2f\n",count3,(float)count3/n100);printf("80-89%d%.2f\n",count4,(float)count4/n100);printf("90-100%d%.2f\n",count5,(float)count5/n*100);}

img


为什么结果是这样的啊

把代码用文本形式贴出来吧!

按照代码格式发一下代码吧,看图片太累了

img

你的代码中,if 和 else 这些条件后的代码都没有用 {} 括住,语句的执行顺序出错了,所以结果不正确,你试一下跟下面代码所示的代码格式修改一下你的代码。


#include<stdio.h>
int main()
{
    int grade;
    printf("输入你的成绩:");
    scanf("%d",&grade);
    if(grade>=90)
    {
       printf("你的成绩为优秀",grade);    
    }
    else if(grade>=80)
    {
        printf("你的成绩为良好",grade);
    }
    else if(grade>=70)
    {
        printf("你的成绩为中等",grade);
    }
    else if(grade>=60)
    {
        printf("你的成绩为及格",grade);
    }
    else
    {
        grade>=60;
        printf("你的成绩为差",grade);
    }
}

count()中,count1/n,因为2个都是int,结果也是int,因此要改为1.0*count1/n