# 情報処理実習 第14回 質問回答ページ ## リンク * [repl.it](https://repl.it/~) - [webEx] ## 質問&回答について 個別で来る質問・コメント等には答えることが出来ず, 授業時間内の質問フォームを通して質問・回答を行うという形式で統一されました. (授業時間外の質問は,次回の授業時間内に質問フォームを通してお願いします) 授業時間ギリギリの質問に気づかないことがあります. 我々が質問に気づいていないと思われる場合は, 次回の授業時間中に再度質問を投稿してください. ### 質問内容に必ず書くこと 質問の際は,必ず下の4点を書いてください. - どの課題に関する質問か - わかっていること - 試してこと - そのうえでわからないこと 「どうしたらいいか?」という質問に答えることは出来ません. 自身で原因を探って意図通りに動くようにするのが実習内容です. 殆どのエラーはググれば説明が出てきます. わからないことが起きた時はGoogle等で検索することを推奨します. 質問の内容によっては,「もう少し自力で考えてほしい(教科書・配布資料をよく読んでほしい,試行錯誤しながら自分のコードを触ってほしい)」「回答を控える」マークを回答状況ページにつける場合があります. 「質問番号n」の形で見出しをつけます. 基本的には新しい回答ほど上位に表示されます. 回答状況ページで回答状況を確認後, Ctrl+F,Cmd+Fで自分の質問番号をページ内検索してください. ただし,回答状況のH列は「回答書き込み完了」ではなく「**今から回答を行います**」の印です. 質問量に依っては「重複した質問」欄の更新が止まる場合があります. そのため,重複した質問は回答の場所を検索出来ないことがあります. また,質問する前に必ずこのページを見て,**類似の質問がないことを確認**してからGoogleフォームで質問を投稿してください. 質問と回答の例は以下の通りです. ### 質問番号0 >hogeがhogehogeの場合,hogehogehogeはhogeですか? <!--質問は引用の形で書いてください--> ```C: main.c #include <stdio.h> int main(void) { printf("Hello World\n"); return 0; } ``` <!--必要に応じてコードや,エラーメッセージを書いてください--> XXXがYYYなのでZZZをAAAするとBBBがCCCです. 重複した質問:質問番号i, 質問番号j,質問番号k <!--学生さんが検索しやすいように, 「重複した質問」欄も「質問番号n」の形で 質問番号を書いてください.--> <!--回答の手間を省くため,回答者と「質問」「回答」の見出しは不要です--> --- <!--他の教員・TAさんと回答が重複することは全く問題ありません. 文量は多いに越したことないので, 気にせず回答をガシガシ書いてください--> <!--基本的にはFIFOで回答をお願いします--> <!--新しい質問に回答した時だけでなく, 「重複した質問」欄に質問番号を追加しただけの場合も, スプレッドシートの「回答者」欄にチェックを入れてください.--> <!--同じ質問が複数の箇所で回答されていることに気づいた方は 積極的にマージしていってください.--> <!--回答を書き終わったタイミングではなく, 回答に取り掛かる段階で「回答者」欄にチェックを入れてください. そちらの方が教員・TAにとって楽だと思います.--> <!--古いものほど下位に表示されるよう,最新の回答を この下に書いてください--> # 質問番号4 数値を入力してもかえってこない ``` b=b++; ``` エラーや警告を読むようにしてください. ググって自力で解決するスキルは重要です.. bについて,bにbを代入してからbに1を足すのか, bに1を足してからbにbを代入するのかがわからない という警告です. ``` main.c:11:5: warning: multiple unsequenced modifications to 'b' [-Wunsequenced] b=b++; ~ ^ 1 warning generated. ``` # 質問番号3 > どの数値を入力しても規格外になってしまう ```#include <stdio.h> int main(void) { int size; printf(""みかんの直径[cm]を入力してください\n""); scanf(""%.1d"",&size); ``` 実行すると以下の警告が出ます. ``` main.c:6:11: warning: invalid conversion specifier '.' [-Wformat-invalid-specifier] scanf("%.1d",&size); ~^ 1 warning generated. ``` 詳細はググってほしいですが, 「.」は無効 と1行目に書いてあります. # 質問番号1 質問番号2 > 条件の部分で未満の部分をきちんと指定しているはずなのですが、6.1だとS , 6.7だとMと出力されてしまいます。これはなぜなのでしょうか。 ```[c] #include <stdio.h> int main(void) { float x=0; printf("みかんの直径[cm]を入力してください\n"); scanf("%f",&x); if(5.5<=x && x<6.1){ printf("Sサイズです\n"); } return 0; } ``` 丸め誤差(https://blog.apar.jp/program/8900/ )によるものだと思います. 僕が狙ってこのようないやらしい問題を出したわけではないので対処法を書きます. (下ような対処をしていなくても減点はしません.授業後にこの回答に気づいた人は心配しないでください) 例えばそれぞれの値を10倍し, ``` 10*x<61 ``` としてから大小関係を比較すれば 一応正しく判定出来るようになります. (入力された値が小数点第一位までの数値ならばですが..)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up