旅行
这道题小数处理太麻烦了,,从这道题学会了一个函数的使用,round();
double round(double x) 返回x四舍五入的整数。
#include <cstdio> #include <cstring> #include <iostream> #include <cmath> using namespace std; #define min(a,b) a>b?b:a double cost[1010]; int main(){ int n; while(~scanf("%d",&n),n){ double sum = 0.0; for(int i = 0;i < n;i++){ scanf("%lf",&cost[i]); sum += cost[i]; } double ave = round(sum * 100 / n) / 100.0; double sum1 = 0.0; sum = 0.0; for(int i = 0;i < n;i++){ if(cost[i] < ave) sum += ave - cost[i]; else sum1 += cost[i] - ave; } double m = min(sum1,sum); printf("$%.2lf\n",m); } return 0; }