• 締切済み

このプログラムの作り方を教えてください。

データを入力し、平均を求めて、更に平均以上と平均未満の個数を求める。ただし0未満の数が入力されると、読み込みは停止し、答えを出力するというプログラムです。 基本的な流れは (1)0未満の数により停止、データの格納 (2)平均値を求める (3)平均以上、未満の個数の計算 (4)結果出力 と思っているのですが、、、

みんなの回答

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.4

>(1)0未満の数により停止、データの格納 これすら出来ないということですか?

すると、全ての回答が全文表示されます。
  • higekuman
  • ベストアンサー率19% (195/979)
回答No.3

誰かがあなたに、次々に数字を言ってきて、それをあなたが【平均を求めて、更に平均以上と平均未満の個数を求める。ただし0未満の数が入力されると、読み込みは停止し、答えを出力】することになった場合、あなたはどんな手順をふみますか? ただし、あなたは暗算はできるけど、次の暗算をする時点で前の暗算結果を忘れなければならないとします。つまり、何かを覚えておくためには、紙か何かに記録しておかなければならないと言うことです。 それを考えると、流れが解ると思いますよ。 ちなみに、 > (1)0未満の数により停止、データの格納 とのことですが、0未満の数が入力されないと、データは格納しないのですが?ここで言っているデータとは何ですか? これも、上記の考え方をすると、答えが出ると思います。

すると、全ての回答が全文表示されます。
  • free_mw
  • ベストアンサー率33% (1/3)
回答No.2

どのくらい入力するかわからなかったので一応100回まで入力できる形で Int型であまり大きい数は対応してないので大きい数を扱うなら変えてください。 あまりチェックしてないので参考までに #include <stdio.h> int main(void) { int dt[100]={0}; int cnt=0,sum=0,i,up=0,down=0; double ave=0.0; while(1){ printf("整数値を入力(終了条件負の数)\n"); scanf("%d",&dt[cnt]); if(dt[cnt]>=0){ sum+=dt[cnt]; cnt++; } else{ break; } } ave=(double)sum/cnt; printf("ave=%.2lf\n",ave); for(i=0;i<cnt;i++){ if(ave<=(double)dt[i]){ up++; } else{ down++; } } printf("平均以上%d 未満%d\n",up,down); return 0; }

すると、全ての回答が全文表示されます。
  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

平均値の求め方は、分かりますか?

fullwhite
質問者

補足

平均値=合計sum/個数nって感じですかね^^; 参考書と照らし合わせながら解いてこうと思ってるんですが・・・イメージがつかないですね・・・

すると、全ての回答が全文表示されます。

関連するQ&A