輸出結(jié)果總成績(jī)是786,可是平均分卻是78,為什么
#include <stdio.h>
int zongfen(int score[])
{
? ? int sum=0;
? ? int i;
? ? for(i=0;i<10;i++)
? ? {
? ? ? ? sum+=score[i];
? ? }
? ? return sum;
}
float Ave(int sum,int n)
{
? ? float ave;
? ? ave=sum/n;
? ? return ave;
}
int Max(int score[])
{
? ? int max=score[0];
? ? int i=1;
? ? for(i=1;i<10;i++)
? ? {
? ? ? ? if(max<score[i])
? ? ? ? max=score[i];
? ? }
? ? return max;
}
int Min(int score[])
{
? ? int min=score[0];
? ? int j;
? ? for(j=1;j<10;j++)
? ? {
? ? ? ? if(min>score[j])
? ? ? ? min=score[j];
? ? }
? ? return min;
}
void shunxu(int score[])
{
int i,j,k;
int t;
for(i=0;i<10;i++)
{
for(j=0;j<10-i;j++)
{
if(score[j]<score[j+1])
{
t=score[j];
? ? ? ? ? ? ? ? score[j]=score[j+1];
? ?score[j+1]=t;
}
}
}
for(k=0;k<10;k++)
{
printf("%-4d",score[k]);
}
}
int main()
{
? ? int score[10]={67,98,75,63,82,79,81,91,66,84};
? ? int sum,min,max;
float ave;
? ? sum=zongfen(score);
? ? ave=Ave(sum,10);
? ? max=Max(score);
? ? min=Min(score);
printf("總成績(jī)是%d\n",sum);
printf("平均分是%f\n",ave);
printf("最高分是%d\n",max);
printf("最低分是%d\n",min);
shunxu(score);
? ? return 0;
}
? ?
2017-11-13
整型除以整型,結(jié)果也為整形,所以要把平均數(shù)定義成浮點(diǎn)型。
float Ave;
Ave=(sum+0.0)/n;??????????? //+0.0的操作是為了把整型轉(zhuǎn)化成浮點(diǎn)型
return Ave;
2017-10-07
在程序中不遵循四舍五入,而且兩個(gè)整數(shù)的商一定為整數(shù),所以結(jié)果是78不是78.6或79