a647

輸入說明 :

測試資料的第一行是一個整數 n,代表John總共投資了 n 件藝術品。以下 n 行,每一行有兩個整數 m 和 p,m 是該藝術品投資的金額、p 是該藝術品目前的價值。其中 1≤m,p≤100000,單位是仟元。

輸出說明 :

每一件藝術品依據它的投資金額及目前價值,計算並輸出其獲利率 x。x為正,表示獲利;x為負表示虧損。若x≥10.00% 或 x≤-7.00%,即售出該藝術品,以「dispose」表示;否則,即保留該藝術品,以「keep」表示。輸出格式,請見輸出範例。

一個位元一個位元做,不能直接把答案用printf(".2lf",n)的原因是你不知道浮點數後面的情況是怎麼樣,你只印到小數點第二位,編譯器會去比較是四捨比較接近,還是五入比較接近

ex:你以為是0.3600四捨五入,但printf(".2lf",n)答案是0.37,因為0.3600有可能會是

0.360000097而不是0.36000000

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int m,p;
    int i,n;
    int temp2;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d %d",&m,&p);        
        int temp;

        temp = p-m;

        if(temp<0)
          printf("%c",'-');
        else
          printf("%c",' ');

        temp *=100000;
        temp/=m;
        temp2=temp;


        temp=abs(temp);
        if((temp%10)>=5)
        temp+=10;

        printf("%d",temp/1000);
        printf("%c",'.');
        temp/=10;
        printf("%02d",temp%100);
        printf("%c",'%');        

        printf(" %s\n",(temp2>=10000||temp2<=-7000)?"dispose":"keep");
    }
    return 0;    
}