• 締切済み

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

データを入力し、平均を求めて、更に平均以上と平均未満の個数を求める。ただし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

  • PICプログラム:受信データの格納について

    こんにちは。 アセンブリ言語でPICをプログラムして試行錯誤している者です。 シリアル通信でデータを受信するなかで、受信データ1バイト毎に変数へ格納したいのですが、データ数があらかじめ規定されていれば変数定義の時点で(例えば)TEMP1,TEMP2...とすれば良いのでしょうが、 受信データの個数が不定の場合、変数をどう定義したら良いか悩んでいます。 予定している受信データ群には、先頭にデータ個数が示されているので、 受信→格納→データ数を格納した変数から1を減じて0になるまでループ といった流れで運用しようと思っています。 アドバイスをよろしくお願いいたします

  • 簡単なプログラムなんですが…

    C言語の簡単なプログラムなんですが、私のような初心者には良く分かりません… 出来るだけ詳しく教えていただけるとうれしいです。 下の2つのプログラムの作り方が理解できません。 (1)データ数nとn個のデータを入力して、その平均を求めるプログラム。 (2)(1)のプログラムに合計と標準偏差を計算して出力する機能を追加したプログラム。 C言語に詳しい方お願いします。

  • 両替プログラムなど

    学校の課題で出たプログラムなのですが、いまいちわかりません。 (1)1000円を500円、100円、50円、10円を使って両替する全てのパターンを出力するプログラム。 (2)整数を入力し、上位の桁から順に各桁の英語読みを出力するプログラム。配列使用。 (3)0~100までの任意の値を複数入力して、入力された値の個数、平均値、最大値、最小値を出力するプログラム。 (2)については、315と入力するとthree one fiveと出力されるプログラムです。 (3)については、複数入力と入力された値の個数の部分がわかりません。 コードを全て記述して教えてくれればうれしいですが、考え方、ヒントだけでも結構です。 非常に困っています。助けてください。

  • 3つほどプログラムをおしえてください。

    (1)100までの整数をいくつか入力し、10刻みでの個数を表示し、負の数が入力されると整数の入力を終わるプログラムです。各範囲の個数は配列に格納する。 実行結果 65 30 21 95 5 -1 0--- 9 : 1 10--- 19 : 0 20--- 29 : 1 30--- 39 : 1 40--- 49 : 0 50--- 59 : 0 60--- 69 : 1 70--- 79 : 0 80--- 89 : 0 90---100 : 1 (2)数字の文字列を入力し、その文字列に含まれる各数字(文字)'0','1',~'9'の個数を表示するプログラムの作成。 実行結果 1231234567 0: 0 1: 2 2: 2 3: 2 4: 1 5: 1 6: 1 7: 1 8: 0 9: 0 (3) 変数xは、0~1までの0.01刻みの値(101個)を取るとする。このとき、2次関数 f(x)=3x^2+2x+1の値が2.0<f(x)<3.0となるxの値をの個数を求めるプログラムの作成。ただし、xを引数としf(x)の値を返す関数を作成して、それを使用する。 実行結果 number=21 やってるうちにわけがわからなくなってしまいます。どなたかよろしくおねがいします。

  • どこを変えたらいいか教えて下さい。

    余りによる数字の分類 [問題]複数の正の整数値を入力し( 0 で入力を終了し,その 0 はデータ数に含めない),41 で割り切れる数の個数,41で割ると 1 余る数の個数,・・・,及び,41 で割ると 40 余る数の個数とそれらの全体の個数に対する割合(%で表示し,小数点以下は切り捨て)を出力するプログラムを書け.出力データは,上で述べた順番で,個数と割合をペアーにし,以下に示すような形式で出力すること(コメントの部分は含まない) 15 2 // 10 で割れる数の個数と全体に対する割合 10 25 // 10 で割ると 1 余る数の個数と全体に対する割合 ・・・ #include <iostream> int main() { int i1, data, k, n = 0, x[10] = {0}, y[10]; // データの入力 std::cin >> data; while (data > 0) { k = data % 10; x[k]++; n++; std::cin >> data; } // 割合の計算 for (i1 = 0; i1 < 10; i1++) y[i1] = 100 * x[i1] / n; // 出力 for (i1 = 0; i1 < 10; i1++) std::cout << x[i1] << " " << y[i1] << std::endl; return 0; }

  • プログラムについて

    次の問題が自分はどうでもできないので、皆さんに助けをお願いしたいのです。 問題は:     N以下の素数を求めるプログラムと     試験の得点(0以上100以下の整数)を入力し,得点データの分布を10点刻    みのヒストグラムの形式で出力するプログラムが分かりません、ぜひ教え    ていただきたいです。よろしくお願いします!

  • プログラムについて

    次の問題が自分はどうしても分からないので、みなさんの力をお借りしたいのです。 問題は:   N以下の素数を求めるプログラムと   試験の得点(0以上100以下の整数)を入力し,得点データの分布を10点刻    みのヒストグラムの形式で出力するプログラムの作成が分かりませんので、   何とかよろしくお願いします!

  • スタックを用いたプログラム

    http://okwave.jp/qa4433705.html 先日教えて戴いた事でスタックがどういったものなのかは わかりましたが、実際にプログラムを作ってみると、 なかなかうまくいけません。再びアドバイスを戴ければと思ってます。 <プログラムの仕様> 入力数値をスタックに格納し'a'が入力されたら、 スタックに格納されている数値を全て取り出し、 平均値を出力するプログラム ・スタックは、push()関数およびpop()関数を実装する ・スタックへの要素の追加はpush()関数で行う ・スタックからの要素の取出はpop()関数で行う ・スタックのサイズは任意とする int push(int push_data);  引数: スタックに追加するデータ  戻り値: 成功の場合1、失敗の場合0を返す int pop(int *pop_data);  引数: スタックから取り出した値を格納するポインタ  戻り値: 成功の場合1、失敗の場合0を返す いざ、自分で作ってみると、 仕様通りには全く作れず、結局main関数ですべてを作って しまうことになってしまいます・・

  • コーディング

    キーボードから0以上100以下の整数データを10個入力したとき、40未満の数値の個数を表示するプログラムをつくりなさい。ただし、データが0以上100以下であるかどうかの判断はしなくてもよい。  宜しくお願いします。

  • CASLIIの問題なんですが

    CASLIIの問題なんですが DAT番地より格納された5個のデータの0以上の数の個数をGR2に数えるプログラムを作成せよ。 という問題が解けません>< どなたかご教授お願いします。

専門家に質問してみよう