問題文:リスト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.
組み込み開発の記事ランキング
コーナーリンク
よく読まれている編集記者コラム