为什么算出来的平均分是79.6?应该是78.6啊!
#include <stdio.h> int sum(int score[]) { int sum=0; int i; for(i=0;i<10;i++) { sum+=score[i]; } return sum; } int max(int score[]) { int max,i; max=score[0]; for(i=0;i<10;i++) { if(score[i]>max) max=score[i]; } return max; } int min(int score[]) { int min,i; min=score[0]; for(i=0;i<10;i++) { if(score[i]<min) min=score[i]; } return min; } float ave(int score[]) { float ave; int i,sum=0; for(i=0;i<10;i++) { sum+=score[i]; } ave=sum*0.1; return ave; } int dgr(int score[]) { int i,j,k,temp; for(i=0;i<10;i++) { for(j=9;j>i;j--) { if(score[j]>score[j-1]) { temp=score[j-1]; score[j-1]=score[j]; score[j]=temp; } } } printf("学生的考试成绩降序排序为:"); for(k=0;k<10;k++) { printf("%d ",score[k]); } } int main() { int score[10]={67,98,75,63,82,79,81,91,66,84}; printf("学生的考试总分为:%d分\n",sum(score)); printf("学生的考试最高分为:%d分\n",max(score)); printf("学生的考试最低分为:%d分\n",min(score)); printf("学生的考试平均分为:%0.1f分\n",ave(score)); dgr(score); return 0; }
赋过初值了,一样的结果,于是就把初值去掉了
int sum=0; 你没有初值