問題文:リスト1に、バグ入りの「アルバイト社員の給料計算」プログラムを示す。リスト2に示す結果を期待したが、実際にはリスト3の実行結果を表示した後、ハングアップした。プログラムを修正し、リスト2の実行結果となるように修正せよ。なお、本問題ではリスト2の入力パターン以外は考慮しないこと。
/* SalaryCalc.c アルバイト社員の給料を計算するプログラム 仕様1:名前、一日の勤務時間、勤務時間帯を入力する。 仕様2:勤務時間帯が通常勤務場合は、基本給 * 勤務時間とし、 勤務時間帯が深夜勤務の場合は、深夜基本給 * 勤務時間とする。 */ #define BASE 1000 #define NIGHT_BASE 1100 #include <stdio.h> int main(void){ char name[128]; //名前 int time = 0; //時間 int zone = 0; //時間帯 int salary = 0; //通常勤務は0、深夜勤務は1 //給料の算出 printf("名前を入力してください\n"); scanf("%s",name); printf("勤務時間を入力してください\n"); scanf("%d",&time); printf("勤務時間帯を入力してください\n"); printf("通常勤務:0 深夜勤務;1\n"); scanf("%d",zone); if (zone = 0) { salary = BASE * time; } else { salary = NIGHT_BASE * time; } printf("本日の%sさんの給料は: %d円です\n",name, salary); return 0; }
名前を入力してください 山田博之 勤務時間を入力してください 10 勤務時間帯を入力してください 通常勤務:0 深夜勤務;1 0 本日の山田博之さんの給料は: 10000円です
名前を入力してください 山田博之 勤務時間を入力してください 10 勤務時間帯を入力してください 通常勤務:0 深夜勤務;1 0
Copyright © ITmedia, Inc. All Rights Reserved.