質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

ファイルI/O

ファイルI/Oは、コンピューターにおけるファイルの入出力です。これは生成/削除やファイルを読み込んだり、出力をファイルに書き込むようなディレクトリやファイルの運用を含みます。

Q&A

1回答

2597閲覧

ボートの貸出時間の総計を算出

Ryo-chan

総合スコア9

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

ファイルI/O

ファイルI/Oは、コンピューターにおけるファイルの入出力です。これは生成/削除やファイルを読み込んだり、出力をファイルに書き込むようなディレクトリやファイルの運用を含みます。

0グッド

0クリップ

投稿2021/08/05 02:34

コマンドライン入力と記載している項目は4つのテキストデータを設けており、このテキストの中から指定したボートの貸出時間の総計を出力できるようにしたいです。

【実行例1】 「コマンドライン入力」 boat1.txt 「標準入力」 A 「標準出力」 1:03 【実行例2】 「コマンドライン入力」 boat3.txt 「標準入力」 D 「標準出力」 2:10 【実行例3】 「コマンドライン入力」 boat4.txt 「標準入力」 E 「標準出力」 2:20 【実行例4】 「コマンドライン入力」 boat4.txt 「標準入力」 G 「標準出力」 0:00

現状下記のプログラムを作成しましたが、実行結果が下記の通りとなってしまいます。
これを解決したいのですが、修正箇所・アドバイスの方をお願いします。

#include <stdio.h> #define LINESIZE 256 int main(int argc, char *argv[]) { FILE *fp; char line[LINESIZE]; char b, io; int h, m, tm[26]={0}; if ((fp = fopen(argv[1], "r")) == NULL) { printf("Can't open the file.\n"); return 1; } for(; fgets(line, LINESIZE, fp)!=NULL;){ sscanf(line, "%c %c %d:%d", &b, &io, &h, &m); switch(io){ case 'I': tm[b-'A'] += 60*h+m; break; case 'O': tm[b-'A'] -= 60*h+m; break; } } printf("%d:%02d\n", tm[b-'A']/60, tm[b-'A']%60); fclose(fp); return 0; }
コマンドライン入力 boat2.txt 標準入力 E 提出プログラムの標準出力 2:27↵ 正しいの標準出力 0:00↵ コマンドライン入力 boat3.txt 標準入力 C 提出プログラムの標準出力 2:10↵ 正しい標準出力 1:55↵

テキストの内容は以下の通りです。
bort1.txt

A O 09:00
B O 09:05
B I 09:30
A I 10:03

bort2.txt

A O 09:00

B O 09:05
B I 09:30
C O 09:31
A I 10:03
C I 11:58

bort3.txt

A O 09:10

C O 09:25
A I 09:50
C I 10:05
D O 10:15
D I 10:55
A O 11:30
C O 12:00
A I 12:45
C I 13:15
D O 13:20
A O 13:30
D I 14:05
A I 14:15
D O 14:55
D I 15:40

bort4.txt

C O 09:05

E O 09:15
E I 09:45
A O 09:45
D O 09:50
C I 09:55
B O 10:10
D I 10:25
E O 10:30
A I 10:35
C O 10:45
B I 10:50
C I 11:10
B O 11:10
E I 11:15
D O 11:45
A O 12:05
C O 12:10
B I 12:15
D I 12:20
A I 12:30
C I 12:55
C O 13:20
E I 13:30
A O 13:40
E O 12:55
C I 13:55
B O 14:00
A I 14:20
B I 14:45
E O 15:10
D O 15:15
C O 15:20
E I 15:40
D I 15:55
C I 16:00
C O 16:45
D O 16:50
A O 16:55
A I 17:30
C I 17:40
D I 17:50

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2021/08/05 03:26

ググルで探しましたら、チエブクロやココナラまで出てきますね。 プログラムを作る勉強なのか、情報を探す勉強なのか…。
退会済みユーザー

退会済みユーザー

2021/08/05 04:29

自分で探す分にはまだいいんですが、他人にぶん投げてるだけの質問の多いこと…
guest

回答1

0

修正箇所・アドバイス

標準入力の扱いがコードのどこにも無いことにはお気づきになりませんか。

投稿2021/08/05 06:07

jimbe

総合スコア13209

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ryo-chan

2021/08/10 08:17

返事が遅くなりましたが、どういう意味になりますでしょうか。 どこか抜けているといった感じでしょうか?
jimbe

2021/08/10 10:13

どのような環境で作成・実行されていますか? コマンドラインで実行されているなら(標準入力に入力する前に)即結果が表示されると思うのですが。 オンラインで試せるサイトなどをご利用でしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問