請問一下各位為什么我這里面的平均分沒有精確到前兩位和為什么最低分是-1000000多
#include <stdio.h>
int ZF(int score[]);
float PG(int score[]);
int ZG(int score[]);
int ZD(int score[]);
int PX(int score[]);
int main()
{
? ? int i;
? ? int score[10]={67,98,75,63,82,79,81,91,66,84};
? ? printf("總分為:%d\n",ZF(score));
? ? printf("平均分為:%2f\n",PG(score));
? ? printf("最高分為:%d\n",ZG(score));
? ? printf("最低分為:%d\n",ZD(score));
? ? PX(score);
? ? printf("考試成績降序排序%d\n",PX(score));
? ? for(i=0;i<10;i++)
? ? {
? ? ? ?if(i!=9) printf("%d,",score[i]);
? ? ? ?else printf("%d",score[i]);
? ? }? ??
? ? return 0;
}
int ZF(int score[])
{
? ? int i, sum;
? ? for(i=0;i<10;i++)
? ? {
? ? ? ? sum+=score[i];
? ? }
? ? return sum;
}
float PG(int score[])
{
? ? float avg=0.0;
? ? avg=((float)ZF(score))/10;
? ? return avg;
}
int ZG(int score[])
{
? ? int i,max=score[i];
? ? for(i=0;i<10;i++)
? ? {
? ? ? ? if(max<score[i])
? ? ? ? {
? ? ? ? ? ? max=score[i];
? ? ? ? }
? ? }
? ? return max;
}
int ZD(int score[])
{
? ? int i,mai=score[i];
? ? for(i=0;i<10;i++)
? ? {
? ? ? ? if(mai>score[i])
? ? ? ? {
? ? ? ? ? ? mai=score[i];
? ? ? ? }
? ? }
? ? return mai;
}
int PX(int score[])
{
? ? int i,j,value=0;
? ? for(i=9;i>=0;i--)
? ? {
? ? ? ? for(j=0;j<i;j++)
? ? ? ? {
? ? ? ? ? ? if(score[j]<score[j+1])
? ? ? ? ? ? {
? ? ? ? ? ? ? ? value=score[j];
? ? ? ? ? ? ? ? score[j]=score[j+1];
? ? ? ? ? ? ? ? score[j+1]=value;
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? return value;
}
2018-07-03
printf("平均分為:%.2f\n",PG(score));
2前少了個點
?int i,mai=score[i];中mai=score[i]編譯錯誤,應改為?int i=0;int mai=score[i];