無題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
とむ

無題

#1

投稿記事 by とむ » 17年前

[1] 授業単元:情報活用
[2] 問題文:キーボードから順次入力された正の整数を0が入力されるまで、
配列に順番に格納し、入力された(0を除く)値の平均値(実数として扱うこと)
にもっとも近い値(平均との差が最小となる値)が何番目に入力された
どういう値であるかを表示するプログラムを作成せよ。

例)
数字(1)を入力してください。 2
数字(2)を入力してください。 5
数字(3)を入力してください。 3
数字(4)を入力してください。 1
数字(5)を入力してください。 0
入力された数字の平均は2.75です。
これは、3番目に入力された3に最も近いです。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: [7月19日20:00]
[5] その他の制限:特になし

授業はカスのくせに課題難しすぎてまったく手が出せません。よろしくお願いします。

Justy

Re:無題

#2

投稿記事 by Justy » 17年前

 何で詰まっているのかよく分からないです。
 本当にまったく何も手が出ないとなると、掲示板で説明できる分量を大幅に超えてしまいますし。

 とりあえず手順だけ。

・ 可変配列の準備
 入力個数が事前に確定できないので、通常の配列が使えません。
 不定な数のデータを格納するために、動的に伸長できる可変配列を作る必要があります。

・ 入力値を可変配列に順次格納
 0が入力されたら中止、負や数字以外の文字が入力されたらリトライする処理を入れて、
キーボードから入力し、格納します。


・ 入力が終わったら、それらの平均を求める
 各要素は intですが、平均は doubleか floatの浮動小数点で計算することに留意して下さい。

・ 平均に近いのを見つける
 各要素と平均値の差分を調べ、最も差が小さいのをピックアップします。
 平均との差分が等しい要素もある(要素が 2と 3の2つのとき、平均は 2.5となり、
両方とも平均との差分が 0.5で同じになる)ので、それも考慮に入れて調べます。

・ 結果表示


 いきなり可変配列は難しいと思うので、まずは普通に10個とか数を限った上で
それらの平均を算出するプログラムを書いてみてはどうでしょうか。

閉鎖

“C言語何でも質問掲示板” へ戻る