我自己用DEV C++ 第2個測點是11.99沒錯 但是放上來就變成12了
程式碼如下
#include <cstdlib>
#include <iostream>
#include <iomanip>
using namespace std;
int main(int argc, char *argv[])
{
int i,n,j,flag=0;
float x;
double a[1000],sum=0,ans=0;
while(cin >> n){
if(n==0){
break;}
else{
for(i=0;i<n;i++){
cin >> a[i];}
for(j=0;j<n-1;j++){
x=a[j]-a[j+1];
x=x*100;
if(x==1||x==-1)
flag=1;
else
flag=0;}
if(flag==1){
for(i=0;i<n;i++){
sum+=int(a[i]);}
}
else{
for(i=0;i<n;i++){
sum+=a[i];}
}
sum=sum/n;
for(i=0;i<n;i++){
if(a[i]<sum)
ans+=sum-a[i];}
cout << "$" << fixed << setprecision(2) << ans << endl;
sum=0;ans=0;}}
}
老掉牙了,浮點數精度問題,先同乘以 100 轉成整數之後就沒錯了。