解題思路:
大致上就是照著題目直觀去解,只是要注意1.誤差問題2.無條件捨去至第二位
1.誤差:由於小數在儲存時有誤差,運算時為避免錯誤要加上
2.無條件捨去:使用floor()函數(如求無條件進位則用ceil())
程式碼:
#include <stdio.h> #include <math.h> int main() { double m; while(scanf("%lf",&m)!=EOF) { int check=0; if(m<100) check=1; if(m<=100) m*=0.9; else if(m<=500) m*=0.8; else m*=0.6; if(check) m+=8; m+=1e-6; printf("$%.2lf\n",floor(m*100)/100); } return 0; }
沒有留言:
張貼留言