1. 程式人生 > >演算法提高 3-2求存款

演算法提高 3-2求存款

問題描述

  見計算機程式設計基礎(喬林)P50第5題。   接受兩個數,一個是使用者一年期定期存款金額,一個是按照百分比格式表示的利率,計算一年期滿後的本金與利息總額。說明:(1) 存款金額以人民幣元為單位,精確到分;(2) 輸入利率時不輸入百分號,例如利率為3.87%,使用者直接輸入3.87;(3) 按照國家法律,儲存利息所得需繳納5%的所得稅,計算結果時應當扣除所得稅。(4) 顯示的結果精確到人民幣分。   注意:資料須用float表示;計算結果須儲存到一個float變數中,再用printf輸出。

輸入格式

  一行,以一個空格隔開的兩個浮點數。

輸出格式

  一個浮點數。

樣例輸入

5000.00 5.00

樣例輸出

5237.50

資料規模和約定

  輸入資料中每一個數的範圍。本金<100000000,利息<100

//資料樣例感覺一點也不精確,第二個答案只有50分,不過 他的小數點後兩位在還沒計算成功就四捨五入,不太符合數學上對精確度的要求

#include "stdio.h"
int main()
{
    float a,b,sum=0;
    scanf("%f%f",&a,&b);
    b=b*0.01;
    sum=0.05*a*b;
    printf("%.4f  %.4f\n",a+a*b, sum);

    printf("%.4f\n",a+a*b-sum);
    return 0;
}

785416.00 3.65 814083.6875  1433.3842 812650.3125

785416.00 3.65
814083.6875  1433.3842
812650.3125
#include "stdio.h"
int main()
{
    float a,b,sum=0;
    scanf("%f%f",&a,&b);
    b=b*0.01;
    sum=0.05*a*b;
    printf("%.4f  %.4f\n",a+a*b, sum);

    //必須要單獨存,用 printf("%.2f\n",a+a*b-0.05*a*b);是錯誤的
    printf("%.4f\n",a+a*b-sum);
    return 0;
}