帮看看 几乎同样的代码,一个AC,一个WA
能AC的代码:
- C/C++ code
#include <stdio.h>double s[1005];int main(){ int n, i; while (scanf("%d", &n)&& n) { double sum = 0, resultH = 0, resultL = 0; for (i = 0; i < n; i++) { scanf("%lf", &s[i]); sum += s[i]; } sum /= n; for (i = 0; i < n; i++){ if (s[i] < sum) resultL += (int)((sum - s[i])*100) / 100.0; else resultH += (int)((s[i] - sum)*100) / 100.0; } printf("$%0.2lf\n", resultL < resultH ? resultH:resultL); } return 0;} 不能AC的代码:
- C/C++ code
#include <stdio.h>double a[1005];int main(){ int i,n; while(scanf("%d",&n) && n){ double resultR = 0,resultL = 0,sum = 0; for(i = 0;i < n;i++){ scanf("%lf",&a[i]); sum += a[i]; } sum /= n; for(i = 0;i < n;i++){ if(a[i] < sum) resultL += (int)((sum - a[i])*100) / 100.0; else resultR += (int)((a[i] - sum)*100) / 100.0; } printf("$%0.2lf\n",resultL < resultR ? resultL:resultR); } return 0; }[解决办法]
printf("$%0.2lf\n", resultL < resultH ? resultH:resultL);
printf("$%0.2lf\n",resultL < resultR ? resultL:resultR);
除了一些名字不一样外,就这里两个值交换了。
不知道还有没有别的茬。
[解决办法]
printf("$%0.2lf\n", resultL < resultH ? resultH:resultL);
printf("$%0.2lf\n",resultL < resultR ? resultL:resultR);
这里反了,答案肯定就错了 ,其他没有变