• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語 入力した数値の平均値の近似値)

C言語 入力した数値の平均値の近似値

このQ&Aのポイント
  • C言語でn個の数値の平均値にもっとも近い値を求めるプログラムが正しく動作しない。
  • プログラムでは指定の入力に対して誤った結果が出力される。
  • プログラムの修正が必要で、どこを修正すればよいか教えてほしい。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

if(num1>num2); num1=num2; ここが、おそらく意図したものではない、というのが1点 ここでは、「常に」num1=num2; が実行されます。 そのため、最後の |平均 - 11.0| が printf("%8.3f",num1); によって出力されています。 printf("%8.3f",num1); ここで、num1(平均と値との差)を出力している、というのがもう1点 「差がnum1のときのc[?]の値」を出力する必要があります。 そのためには、「差がnum1のときのc[?]の値」をなんらかの方法で記録する必要があります。 ?の値を記憶てもいいし、c[?]の値を記憶してもよいです。 そういえば、ansという変数は使われていませんね

butamushi
質問者

お礼

kmee さんの言うとおり、まずif(num1<num2)のところが{}でくくれてなかったのでif文の中身が常に実行されてしまうようになっていました。 あと、出力するものも間違えてました。 if(num1<num2)のときにansにc[i]の値を代入させてansを出力したらできました。 助かりました。 ありがとうございました。