解題思路:
大致上就是照著題目直觀去解,只是要注意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;
}
沒有留言:
張貼留言