アプリ版:「スタンプのみでお礼する」機能のリリースについて

プログラミング勉強サイトcodingameをはじめました。

ヒントを見ながらコードを打ち込みクリアはしましたが、それぞれの関数が
ゲーム内でどんな働きををしているのか(なぜこの場面でscanf関数とprintf
関数が必要となるのか?)わかりません。どなたか詳しい方ご教授いただけませんでしょうか?
コードは下記の通りになります。ヘッダーファイル読み込み部分は省略しております。

/**
* CodinGame planet is being attacked by slimy insectoid aliens.
* <---
* Hint:To protect the planet, you can implement the pseudo-code provided in the statement, below the player.
**/
int main()
{

// game loop
while (1) {
char enemy1[257]; // name of enemy 1
scanf("%s", enemy1);
int dist1; // distance to enemy 1
scanf("%d", &dist1);
char enemy2[257]; // name of enemy 2
scanf("%s", enemy2);
int dist2; // distance to enemy 2
scanf("%d", &dist2);

// Write an action using printf(). DON'T FORGET THE TRAILING \n
// To debug: fprintf(stderr, "Debug messages...\n");
if(dist1>dist2){
printf("%s\n", enemy2); // You have to output a correct ship name to shoot ("Buzz", enemy1, enemy2, ...)
}else{
printf("%s\n", enemy1);
}
}
return 0;
}

「codingame Onboarding」の質問画像

A 回答 (1件)

「プログラミング勉強サイトcodingame」がいかのうようものかわからないので、下記サイトにて、何となく仕様はこうだ!と憶測をはらんだ上で回答させていただきます。


http://jyusensha.wp.xdomain.jp/post-64/

あなたは、printf()/scanf()関数がコンソール画面への出力あるいはキーボード入力を受け取る関数と捕らえているのではないでしょうか?
printf()/scanf()関数はストリームと呼ばれる画面入出力よりも抽象的な概念への入出力として設計されております。ファイル入出力もそのストリームへの出力です。ストリーム?抽象的?っと思われるかもしれません。うまく説明できないので下記を参照してください。
https://ja.wikipedia.org/wiki/%E6%A8%99%E6%BA%96 …

さて、「プログラミング勉強サイトcodingame」において、ユーザーであるあなたの入出力を担う方法としてストリームを利用しているのだと思います。
この説明でご納得いただけるでしょうか?
    • good
    • 1
この回答へのお礼

ありがとう

お返事が遅くなり申し訳ありませんでした。
ご参照いただいたURLは一度見てはいましたが、勉強していた言語ではなかったので大まかの処理の流れ以外はいまいち、よくわかりませんでした。

あなたは、printf()/scanf()関数がコンソール画面への出力あるいはキーボード入力を受け取る関数と捕らえているのではないでしょうか?

おっしゃるとおりです。もう一度本やサイト等を見て勉強しようと思います。
シンプルな説明で分かりやすかったです。
ご回答どうもありがとうございました。

お礼日時:2016/03/27 07:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!