プログラムの実行時に「標準入力」欄にボートの名前(アルファベット1文字:A, B, C, ...)を入力して実行すると,そのボートの貸出時間の総計を算出するプログラムを作成してください。
仕様は下記になります。
**・**ボートは15隻所有している(A,B,C,…)
**・**営業時間は09:00~18:00である
**・**ボートの貸し出し・返却時に以下を記録している
―ボート名、貸出/返却、時刻(10分単位)
よろしくお願いいたします。
追記
1日の全体の総計を算出できるプログラムまでは作成できたのですが、ボートごとの総計を算出するプログラムが作成できません。下記に作成できたプログラムは載せておきます。
#include <stdio.h> #define LINESIZE 256 int main(int argc, char *argv[]) { FILE *fp; char line[LINESIZE]; char b, io; int h, m, tm; if ((fp=fopen(argv[1],"r"))== NULL){ printf("Can't open the file.\n"); return 1; } tm=0; for(; fgets(line, LINESIZE, fp)!=NULL;){ sscanf(line,"%c %c %d:%d",&b,&io,&h,&m); switch(io){ case'I': tm += 60*h+m; break; case'O': tm -= 60*h+m; break; } } printf("%d:%02d\n",tm/60,tm%60); fclose(fp); return 0; }
どこまで作成してみましたか?
1日の全体の総計を算出できるプログラムまでは作成できたのですが、ボートごとの総計を算出するプログラムが作成できません。下記に作成できたプログラムは載せておきます。
#include <stdio.h>
#define LINESIZE 256
int main(int argc, char *argv[]) {
FILE *fp;
char line[LINESIZE];
char b, io;
int h, m, tm;
if ((fp=fopen(argv[1],"r"))== NULL){
printf("Can't open the file.\n");
return 1;
}
tm=0;
for(; fgets(line, LINESIZE, fp)!=NULL;){
sscanf(line,"%c %c %d:%d",&b,&io,&h,&m);
switch(io){
case'I':
tm += 60*h+m;
break;
case'O':
tm -= 60*h+m;
break;
}
}
printf("%d:%02d\n",tm/60,tm%60);
fclose(fp);
return 0;
}
ここ(質問への追記・修正の依頼)に書いてもデフォルト非表示だから、あまり見てもらえませんよ。
インデントの重要性について勉強しておくとよいと思います。
回答1件
あなたの回答
tips
プレビュー