帮看看 几乎同样的代码,一个AC,一个WA,该如何解决
帮看看 几乎同样的代码,一个AC,一个WA
能AC的代码:
不能AC的代码:
------解决方案--------------------
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);
这里反了,答案肯定就错了 ,其他没有变
能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);
这里反了,答案肯定就错了 ,其他没有变