#include <stdio.h> int main() { int i,n; float ave = 0; float sum = 0; float max = 0; float min = 0; scanf("%d",&n); float score[100] = {0.0}; for(i=0;i<n;i++) { scanf("%f ",&score[i]); } max = score[0]; min = score[0]; for(i=0;i<n;i++) { ave += score[i]; if(score[i]<min) { min = score[i]; } if(score[i]>max) { max = score[i]; } sum +=score[i]; } ave = sum/n; printf("%.2f %.2f %.2f",max,min,ave); return 0; }
刚开始数组定义的时候用的时float score[n];编译无法通过。然后没有把最大值和最小值先定义为score[0];都定义的是0,这样最小值一直就是0了,就不对。最大值,最小值,可以不用替换,直接比较大小,赋值,更简单一点。还看到有人没有把最大值和最小值先定义为score[0],而是直接把最大值定义为0,最小值定义为100。