题目要求输入每行的第一个数是n(2<n<=100),表示评委的人数,然后是n个评委的打分,选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分。下面是我的代码,我知道输入分数当超过100的时候就不正确了,但想知道为什么。
#include "stdio.h"
int main()
{
int n,i,t,j,a[i];
double sum;
while (scanf("%d",&n)!=EOF) {
sum=0;
for (i=1; i<=n; i++) {
scanf("%d",&a[i]);
}
for (i=0; i<n-1; i++) {
for (j=1; j<n-i; j++) {
if (a[j]>a[j+1]) {
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for (i=2; i<n; i++) {
sum+=a[i];
}
sum=sum/(n-2);
printf("%.2lf\n",sum);
}
return 0;
}
ä½ææ¹äºä¹ååç¼è¯äºä¸æ¯æ£ç¡®çï¼èä¸è¾å ¥è¾åºä¹æ¯æ£ç¡®çï¼ä½ä¸ºä»ä¹æ交åæ¾ç¤ºwrong answerï¼è§£çäºç»ä½ å åï¼
追çfor (i=1; i<=n; i++) {
scanf("%d",&a[i]);
}æ¹ä¸ºï¼
for (i=0; i<n; i++)
scanf("%d",&a[i]);
for (i=2; i<n; i++) {
sum+=a[i];
}æ¹ä¸ºï¼
for (i=1; i<n-2; i++)
sum+=a[i];
é¢ï¼æèªå·±ç 究ä¸è§£å³äºï¼ä¸è¿è¿æ¯è°¢è°¢ä½ ç帮å¿ï¼
追ç解å³å°±å¥½äºã