# 情報処理実習 第4回 質問回答ページ ## リンク - [repl.it](https://repl.it/~) - [webEx](https://aoyamagakuin.webex.com/aoyamagakuin/j.php?MTID=mb3a4a40d55ceacab3076ccc050c86e5a) - [第4回講義用質問フォーム](https://docs.google.com/forms/d/e/1FAIpQLSfIQuNDbsPX1E_O4yMWGvI706w2eDQUuIkPC6CXIPVTBHDpng/formResponse) - [第4回講義用回答状況](https://docs.google.com/spreadsheets/d/1vD4Mh34B3Pht01kJL6lCXHC_01A6EJU5JoDVt7LrC9c/edit#gid=1556749095) - [第4回講義用質問回答ページ](https://hackmd.io/_wdnBuVRRVCempMUQk7s0Q)(このページです) ## 質問&回答について ### 質問内容に必ず書くこと 質問の際は,必ず下の3点を書いてください. - どの課題に関する質問か - どこがわからないか - 何を試してみたか 多くの場合,どこが駄目でなぜ動かないのかがエラー文に書かれています(第1回の授業でもあったように,repl.itでは特に丁寧に示してくれています). エラーをよく読むようにしてください. ``` clang-7 -pthread -lm -o main main.c main.c:4:3: warning: implicit declaration of function 'print' is invalid in C99 [-Wimplicit-function-declaration] print("Hello World\n"); ^ 1 warning generated. /tmp/main-071bdf.o: In function `main': main.c:(.text+0x1c): undefined reference to `print' clang-7: error: linker command failed with exit code 1 (use -v to see invocation) compiler exit status 1 ``` 例えば上の例では, 2行目〜3行目に「main.cというファイルの4行目の3文字目に警告」「printって何ですか?」 8行目に「main.cのmain関数中で使われているprintが定義されていない」と書いてくれているので, 「printにタイプミスがあったんだな」ということがわかります. また,殆どのエラーはググれば説明が出てきます. わからないことが起きた時はGoogle等で検索することを推奨します (個人的には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にとって楽だと思います.--> <!--古いものほど下位に表示されるよう,最新の回答を この下に書いてください--> ### 質問番号23 >入力した数字を横の数を維持したまま縦に並べるにはどうすればいいのでしょうか それを考えてプログラムで実現するのが課題です,,,考えてください. ### 質問番号22 >改行を繰り返すプログラムがわかりません 改行のところ今のコードをみるとただ\nで打ち込んであると思います... 今回は文章を出力はしませんが、\nを使う時の考え方はいつもと一緒です。あまり言うと答えになってしまうので、これでわかっていただきたいです。 ### 質問番号21 >一回身長を入力するごとに平均値が出されてしまいます。どうすれば七回入力した後に平均値が出るようになりますか? 今のプログラムだとfor文の中で平均値の計算と表示をしてしまっています。 七回入力した後に平均値が出るようにするには、その処理をfor文の外でできるようにプログラムを変える必要があると思います。どうしたらそれができるか考えてみてください。 ### 質問番号20 > 課題3では受験者数によって変数の数が変化すると思うのですが、受験者数分変数を用意するということでしょうか。 受験者数によって変数の数は変化しません。 合格者の数をカウントする変数一つあれば十分です。 ヒントを読んでください。 ### 質問番号18 > エラーはでないのですが、身長入力の際に一回目だけ数字を2つ入れないといけないと、次の身長が入力できません。なぜなのでしょうか。 ```c #include <stdio.h> int main() { //略 scanf("%lf\n",&a); //略 } ``` 教科書,配布資料のscanf()の箇所をもう一度読んでください. ### 質問番号17 >エラーコードも出ていないのに、出力結果が表示されません。 コードを見ると改行の数が多い気がします...その結果、2回エンターを押さないと出力結果が表示されないようになってしまっています。 ### 質問番号15 >問題文のm,nは2桁以上も含みますか? どちらでも結構です.一桁に限る場合は,その意図と,それを実現するために行った処理(プログラムの該当部分)の説明を,レポートに含めてください. ### 質問番号16 > scanf関数をfor文でループさせたい 「〇〇をさせたい」という文章は質問ではありません。質問とは原則疑問形 or わからない点を明示する必要があります。 このページの上にある**質問内容に必ず書くこと**をしっかり確認してください ``` 質問の際は,必ず下の3点を書いてください. - どの課題に関する質問か - どこがわからないか - 何を試してみたか ``` ### 質問番号14 > 文と数値の間に1行開ける必要はありますか? いいえ,ありません. ### 質問番号13 > 数字を入力したいのですが入力できないので結果を確認できません。 > コードが間違っているのでしょうか?課題1だけでなく課題2.3.4もです ```c #include <stdio.h> int main() { //略 for(loop=1;loop<=9;loop++); //略 return 0; } ``` はい.コードに間違いがあります. 教科書,配布資料のfor文の箇所や,コードをよく見返してください. 今は「何もしない」という操作を9回繰り返すことになっています. なんでそうなるのかは自力で考えてみてください.. ちなみに,↑のコードでもバグなく動いてしまうはずです. ### 質問番号12 >loopをどう使えばいいかわかりません 講義資料においてloopはforの{}の始まりから終わりまでを何回繰り返すかのカウントをするために用いています。なので身長を読み込むscanfのところにはloopでなく、別の変数を用意してあげた方が良いと思います。 ちなみに"身長を入力してくださいを繰り返すことはできたが入力した数字を記憶して計算させる方法がわかりません"に関しては、for文内で入力された身長を計算してあげればいいと思います。 ### 質問番号11 > loopを使用して、数字を入力してください.と入力結果を繰り返そうとしたら数字を入力してください.のみが繰り返し表示されています。どこが原因なのでしょうか。 ```c #include <stdio.h> int main(void) { int loop,ans,ave; for(loop=1;loop<=7;loop++) printf("数字を入力してください."); //略 return 0; } ``` 教科書や配布資料のfor文に関する箇所をもう一度読んでみてください. あるいは,前週の配布資料中でもこれに似た状況に関する説明をしています. ### 質問番号10 > (課題4の)問題の意図が分かりません 文字が`a`、`m=3`、`n=2`とすると、以下が出力例となります。 ``` aa aa aa ``` ### 質問番号9 >課題文では60点以上を合格者にしていますが、実行結果は90点以上を合格者として実行しています。合格点は60点で間違い無いですか? 失礼しました.実行例が間違いです.合格点は60点以上で間違い無いです。 ### 質問番号8 > 質問省略 なるほど,確かに迷いますね.どちらで扱っても結構です.レポートに,どちらで扱ったか明記しましょう. ### 質問番号7 > 平均値を出すために7回入力するものを毎回足すようにしたいのですが,どうすればいいのかわかりません. ```c #include <stdio.h> int main(void) { //略 for(loop=1;loop<=7;loop++){ //略 scanf("%d",&h); h=h+h; //略 } //略 return 0; } ``` 各処理(各行)での各変数の値をもう一度確認してください. 平均値がなぜそのような値になっているのかを考えてみると, うまくいかない理由がわかるかと思います. ### 質問番号6 >7人の身長を繰り返し入力してもらう部分でloopを使うと思ったのですが、その使い方と入力方法がわかりません。 講義資料においてloopはforの{}の始まりから終わりまでを何回繰り返すかのカウントをするために用いています。なので身長を読み込むscanfのところにはloopでなく、別の変数を用意してあげた方が良いと思います。 ### 質問番号5 >質問省略 すでに説明しました. ### 質問番号4 >I waited from 16:30 to 16:49 and didn’t see the attendance button. I have to say that this is not the first time I have experienced. When we have to focus on the report, also need to check simultaneously whether the attendance button appears. Is that interesting? We secure enough time (5 minutes). Please follow the instruction. Or you should reload your page to see the button. ### 質問番号3 >質問省略 for文の使い方に関する教科書・配布資料をもう一度読んでみてください. イマイチわからなかった場合は,変数の箇所から読み返してください. ### 質問番号2 >質問省略 個別に確認したところ,正しく登録されています. 授業中にあったとおり,他の方も,パスワードを他人に教える(教えようとしていると勘違いされうる)行為はやめてください. 他の方も,出席登録が出来ているかどうかの質問は今後避けてください.
×
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