No.4
- 回答日時:
「while文の中に書いた出力処理」と「while文を抜けたのちに出力する」とは全然意味が違うから「説明が不足」じゃないんだけどね....
さておき, while の条件が
scanf("%s", s) != EOF
となっているのだから, 当然「scanf が EOF を返したとき」に while から抜け出すことになります. さて, scanf はどのようなときに EOF を返すでしょうか.
No.3
- 回答日時:
その「while文の中」に, そもそも「出力処理」が見つからないんですけど....
while文を抜けたのちに出力する、という意味でした。ループを抜けることができないために出力がなされない、ということです。
説明が不足し、申し訳ありません。
No.1ベストアンサー
- 回答日時:
恐らく(というか十中八九確実に)ですが、AOJ 側では入力データをファイルとして用意していて、そのファイルをリダイレクトでコンパイル結果に食わせています。
そして、出力もリダイレクトしてファイル化し、これもまたファイルとして用意した正解の出力と比較して出力結果のチェックとしています。でなければ、24 時間ひっきりなしに到着する答案提出に対応できるわけがありません。「エンターキーを押した」と書かれていることからあなたは入力を手入力で行ったと思われますが、ひょっとしたら手入力・画面出力とリダイレクト入出力との違いで何かが違うのかもしれません。
あと、あなたは gcc を利用されたと書いていますが、OS は何を使用してますか?
あなたが遭遇した現象は OS のキーボードからの入力の扱いの違いも絡んでいるようにも見えます。
入力方法に原因があるのか...。
Linuxで書いたのですが、気になったのでWindows(VC++)でも試してみて、同じ結果でした。ちなみに、コードの入力処理の部分を少し書き換えると手入力でも出力がなされました。ここに何か違いがあるようです。
回答、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# exeファイルが作れない(windows10) 6 2022/08/13 08:47
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/06/15 14:11
- Visual Basic(VBA) EXCEL VBAで NHK NEWSの NEWSデータ内容取得が できない 1 2023/04/09 12:26
- Excel(エクセル) エクセルVBA マクロ処理中のポップアップメッセージについて 1 2023/08/04 21:34
- Ruby プログラミング 3 2023/06/09 14:30
- その他(プログラミング・Web制作) ワードプレスのプラグインであるAddQuicktagを使いたいが… 3 2022/04/18 15:03
- Visual Basic(VBA) VBAで早押しゲームを作りたい 4 2022/05/12 13:46
- WordPress(ワードプレス) WordpressでYouTubeの埋め込みができない。 1 2022/10/26 01:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Paiza Cloudです。学籍番号と氏...
-
Paiza Cloudです。 どうやれば...
-
テキストファイルに改行コード...
-
二次元配列をクリップボードに...
-
VBAでエクセルをCSVに変換時
-
MS-Word で作成した表をLatexに...
-
ファイル出力の場所を指定
-
raw形式からbmp形式への書き込...
-
ドキュワークスでPDFファイルを...
-
c言語の質問です。 ランダムに4...
-
VBSでEXCEL⇒CSV変換で日付の書...
-
C言語のローカル変数初期化に...
-
C++ fprintf_sの使い方がわからん
-
井戸型ポテンシャルの数値解シ...
-
ラストです!! このプログラム...
-
VBA フォルダ見える化のコード...
-
ファイル比較について
-
windowsでテキストファイルの比...
-
Maximaでダブルクリックでwxmフ...
-
ページ読み込み時に自動的にsub...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド(例えばls)の出力結果...
-
ファイル出力の場所を指定
-
VC++でUTF-8のファイルを出力し...
-
テキストファイルに改行コード...
-
シェルコマンドの 2>&1 とはど...
-
Acccess レポートをグループ別...
-
Wordマクロで指定したフォルダ...
-
二次元配列をクリップボードに...
-
ファイル形式またはファイル拡...
-
CreateProcess関数と実行後の戻...
-
fortranのtxtファイル出力書式...
-
サウンド出力のデバイスを選択...
-
VBA でメモ帳へ保存する際の保...
-
1行ずつではなくまとめてファイ...
-
VBSでEXCEL⇒CSV変換で日付の書...
-
C++ fprintf_sの使い方がわからん
-
ファイルの文字コードをUTF-8に...
-
pLaTeX の EPSファイル読み込み...
-
AccessVBA複数レポート条件毎に...
-
フォルダにあるPDF情報の抽出(VBA)
おすすめ情報
int a, b;
top = 0;
char s[100];
while(scanf("%s", s) != EOF){
if( s[0] == '+'){
a = pop();
b = pop();
push(a + b);
} else if( s[0] == '-'){
b = pop();
a = pop();
push(a - b);
} else if( s[0] == '*'){
a = pop();
b = pop();
push(a * b);
} else{
push(atoi(s));
}
}
ALDS_1_3_Aの問題、gcc(linux,win),VC++共に同挙動。全文は文字数の関係上補足不可。
上記の補足のコードの中で使われているpop、push関数はSTLのstackに実装されているものと同じようなものです。(簡略化されてはいますが)
見づらくてごめんなさい。もっときれいに載せられないものか...。