---
# System prepended metadata

title: 情報処理実習 第8回 質問回答ページ

---

# 情報処理実習 第8回 質問回答ページ

## リンク

* [repl.it](https://repl.it/~)
- [webEx](https://aoyamagakuin.webex.com/aoyamagakuin/j.php?MTID=mb3a4a40d55ceacab3076ccc050c86e5a)

## 質問&回答について

個別で来る質問・コメント等には答えることが出来ず，
授業時間内の質問フォームを通して質問・回答を行うという形式で統一されました．
（授業時間外の質問は，次回の授業時間内に質問フォームを通してお願いします）

授業時間ギリギリの質問に気づかないことがあります．
我々が質問に気づいていないと思われる場合は，
次回の授業時間中に再度質問を投稿してください．

### 質問内容に必ず書くこと
質問の際は，必ず下の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にとって楽だと思います．-->

<!--古いものほど下位に表示されるよう，最新の回答を
    この下に書いてください-->
    
### 質問番号6

> sqrt関数の引数が悪いのかその他のプログラムが悪いのかわかりません また結果にある「}」のダメなところがわかりません

エラーの
```
main.c:6:1: warning: control reaches end of non-void function \[-Wreturn-type\] } ^ 1 warning generated.
```
をちゃんと読んでみてください。non-void関数において...と書いてあります。戻り値のある(non-void)関数を勉強してみてください。

### 質問番号4

>小数点以下の計算が行われないのは何故でしょうか．

C言語では整数同士の割り算の答え（（整数＋整数＋整数）/整数）の答え）は整数で返ってきます．
double型の変数aveを準備しても，右辺の式を評価した結果が整数として返ってきているので小数点以下は切り捨てられた値が代入されてしまいます．
例えば，/3ではなく/3.0と，実数であることを明示的に書いたり，
いずれかの整数（変数）を実数型にキャストすることで解決します．

重複した質問：質問番号7

 
### 質問番号3
> 計算結果が一致しない

今日の配布資料の（13ページ〜）14ページ，15ページあたりの動画を見返すのが良いと思います．

試したことを丁寧に書いていただいていて，↓のように書かれていますが，
rss()関数中で平方根を計算した時点では正しい値が得られています．
>平方根を計算した際に少数第一位の値が異なってしまう。

 
### 質問番号2

> 計算式が正しいことまではわかっていますが、関数を用いると、実行結果で数値がずれてしまう原因が分かりません。

今日の配布資料30ページや，13〜20ページあたりを見返してみて下さい（動画を再度見て下さい）．
例えば，P.18の例1のfunction_double()関数中の変数x,yと，
main()関数中の変数x,yはたまたま名前が同じなだけで別の変数です．
（2関数間のx,yは別物なので，main()関数中で使われているx,yの箇所全てを例えばa,bに変更しても問題なく動きます）

### 質問番号1 

> sqrtとprintfを共存させる方法がわかりません。

おそらく、math.hとstdio.hの両方を使いたい時にどうすれば良いのかわからないという質問かと思います（今回、私の方でライブラリの使い方の例を書いていなかったので）。

こちらは二つのライブラリをプログラムの冒頭でincludeしてあげればうまくいきます。

ただ、もしこういう問いがあった時にまずググってもらえるともっと実力がつくかと思います。

例えば、「[C言語 math.h 例](https://www.google.com/search?sxsrf=ALeKk02HQ_KTWcwMZ-lamIU0Ckrje4Xt6g%3A1604909053129&ei=_feoX7_DB6y1mAWEy5zoDQ&q=C%E8%A8%80%E8%AA%9E+math.h+%E4%BE%8B&oq=C%E8%A8%80%E8%AA%9E+math.h+%E4%BE%8B&gs_lcp=CgZwc3ktYWIQAzIFCAAQzQIyBQgAEM0COgQIIxAnOgIIADoGCAAQBBAeOggIABAIEAQQHjoICAAQBRAEEB46CQghEAoQoAEQKjoFCCEQoAFQ3BNY9UFgh0NoAHAAeACAAa0BiAG3EZIBBDMuMTaYAQCgAQGqAQdnd3Mtd2l6wAEB&sclient=psy-ab&ved=0ahUKEwj_tYiQgPXsAhWsGqYKHYQlB90Q4dUDCA0&uact=5)」でぐぐると今回の問の答えに近いものが得られるかと思います。
