只要找到最高分和最低分减去就行了,刚开始我居然会想到先排序然后再减去首位。。。太二了。。。 #include <stdio.h> int main() { int n,i; float m[100],ans,max,min; while( scanf("%d",&n)!=EOF ) { ans = 0; for(i=0;i<n;i++) { scanf("%f",&m[i]); } min = m[0]; for(i=1;i<n;i++) { if(m[i]<min) min = m[i]; } max = m[0]; for(i=1;i<n;i++) { if(m[i]>max) max = m[i]; } for(i=0;i<n;i++) { ans += m[i]; } ans = ans - min - max; ans = ans/(n-2); printf("%.2f/n",ans); } return 0; }