读书人

帮看看 几乎同样的代码一个AC,一个W

发布时间: 2012-04-03 12:38:19 作者: rapoo

帮看看 几乎同样的代码,一个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);

这里反了,答案肯定就错了 ,其他没有变

读书人网 >C语言

热点推荐