找不出错误了,但一直通过不了
#include
int main(){
int n,s=0,c=0;
double avg=0.0;
scanf("%d",&n);
int i,a[n];
for(i=0;iscanf("%d",&a[i]);
if(a[i]==-1){
break;
}
else if(a[i]>=0&&a[i]<=100){
c++;
s+=a[i];
}
}
avg=1.00*s/c;
printf("%.2lf",avg);
}
这个题目意思是说检测到n个有效数据或者输入-1才计算平均数,所以不是单纯的输入n个数就行,所以for循环从0-n-1是不行的,可能你输入了20个数才满足有效数据达到n个
结果与样例一致,为什么通不过
有一种情况 就是 你计划输入3个数,在这种输入下 90 -80 -80 -80 90 90 估计有问题。没有-1和前面3个没有3个有效数字。 for循环里面只读3个数字就退出了,这种case会失败。应该在没有读到-1之前不退出循序直到读到3个有效数字为止