- ベストアンサー
C言語の関数について
- C言語の関数についての質問
- プログラムの修正を求めています
- 勉強法についてのアドバイスを求めています
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
間違いはwhile(1)ですね。 それを直せばコンパイルは成功します。 勉強法は、初心者のうちは教科書のプログラムを参考にしつつ、数多くの問題を自力でプログラムして解くことかな。 大学の情報系学科ではスパルタでやらされます。 あとは、エラーは英語表記でも読んで理解すること。 また、配列や動的メモリ確保を行うと「セグメントエラー」を経験します。初心者のみならず上級者にとってもやっかいなエラーです。 ちなみに、total = total + input_number(); は、total += input_number(); のように書けます。
その他の回答 (2)
- Wr5
- ベストアンサー率53% (2173/4061)
>コンパイルしてみたんですがエラーメッセージがよく分からず質問させていただきました なら、そのエラーメッセージをそのまま掲示した方がいいかと。 変に意訳する必要はないです。 で…while(1)にしてコンパイルしたとして…実行すると、 数値を入力してください: 5↓ 数値を入力してください: 0↓ 数値を入力してください: 10↓ 数値を入力してください: 0↓ 数値を入力してください: -1↓ 数値を入力してください: 0↓ 数値を入力してください: 6↓ 数値を入力してください: 0↓ 数値を入力してください: 0↓ 合計値は0です となりますが、期待する結果ですか? # ↓はEnterキー入力 また、なぜそうなるのか判りますか? # ループが何回まわって、input_number()が何回呼ばれているか理解していますか?
- kmee
- ベストアンサー率55% (1857/3366)
何を期待して、どこが「間違っている」と思っているのですか? 勉強法「何をやろうとして、それがどのように『うまくいかない』のか説明できるようになりましょう」 間違いと断言できるのは while(){ だけです ただ、これは、コンパイルすればエラーメッセージと共に理由が表示されるはずです。 勉強法「エラーメッセージはちゃんと読み、内容を理解し、その原因を探し、修正しましょう」 それ以外は、「文法的には」間違いはありません おそらく total = total + input_number(); が間違っているような気はしますが、断定できません。 あなたが作っているプログラムが「『1番目に入力した数が0だったら終了、そうでなかったら、2番目に入力した数値を加える』を繰り返す」というプログラムなら「正しい」のです。 あなたが作っているプログラムが「『入力した数が0になるまで、その入力した数値を加える』を繰り返す」というプログラムなら「間違い」のです。
補足
教えて頂きありがとうございます コンパイルエラーメッセージを理解出来るよう勉強します また説明不足で申し訳ないです わたしが作りたいのは0を入力すると終了するものです コンパイルしてみたんですがエラーメッセージがよく分からず質問させていただきました またwhil(1){ といれわすれましたすみません