給料計算

給料計算list_49.c)
/*-----------------------------------------------------------------
  労働時間と時給を計算プログラム
  ・時間に0を入れるまで繰り返し計算する。
  ・時間は15分単位で入力する(3時間15の場合:3.25、5時間30の場合5.5)
  ・時間が8時間を越えた場合は超えた時間の時給を10%割り増しとする
  ・時間の表示は小数点以下2桁とする。
  *時間の計算方法例:
  時間が8時間以下の場合:
   給料=時間×時給
  時間が8時間を越えた場合:
  給料1=8×時給 給料2=(時間-8)×時給×1.1
   給料=給料1+給料2
 -----------------------------------------------------------------*/
#include <stdio.h>

int main(int argc,char* argv[])
{
    int h,cnt;
    double wtime;
    double tim,m;
    double payph=500;
    double calc,calc1,calc2;

    /* 入力部 */
    cnt = 0;
    printf("input time[%d]: ",cnt);
    scanf("%lf",&tim);
    while(tim!=0){
        h = (int)tim;
        m = tim-h;
        if(m-(int)(m/0.25)*0.25 != 0){
            printf("input time is strange[%.2lf].\n",h+m);
        } else {
            wtime += tim;
            cnt++;
        }
        printf("input time[%d]: ",cnt);
        scanf("%lf",&tim);
    }
    /* 給料計算 */
    if(wtime>=8){
        calc1 = 8*payph;
        calc2 = (wtime-8)*payph*1.1;
        calc  = calc1+calc2;
    } else {
        calc  = wtime*payph;
    }
    printf("[work time:%.2lf ==> %.2lfyen]\n",wtime,calc);
    return 0;
}
実行結果
Gami[1050]% list_49
input time[0]: 8
input time[1]: 2
input time[2]: 7
input time[3]: 6
input time[4]: 8
input time[5]: 6
input time[6]: 8
input time[7]: 0
[work time:45.00 ==> 24350.00yen]
Gami[1051]%
inserted by FC2 system