#1400: 為甚麼WA


pcsh710727 (~囧rz~)


 我的程式碼

 

#include <iostream> #include <string> using namespace std; int main () { string s1, s2; long long k; while (getline (cin, s1, '.'), getline (cin, s2)) { s1 += s2; k = atol (s1.c_str()); if (k<=10000) { k *= 0.9; k += 800; } else if (k>=10001 && k<=50000) k *= 0.8; else k *= 0.6; cout << '$' << k/100 << '.' << (k%100<10 ? "0" : "") << k%100 << endl; } }

 

與正確輸出不相符(line:140) 您的答案為: $650.33 正確答案為: $650.34

與正確輸出不相符(line:142) 您的答案為: $2351.60  正確答案為: $2351.61 

與正確輸出不相符(line:162) 您的答案為: $593.45  正確答案為: $593.46 

與正確輸出不相符(line:198) 您的答案為: $365.48 正確答案為: $365.49

 

#1404: Re:為甚麼WA


morris1028 (碼畜)


提示: 

要用scanf("%d.%d",&A,&B);
用暴力型運算 double不準確