化学
大学生・専門学校生・社会人

1枚目のようにしたいのですがどこを改善したら良いでしょうか……

全て載せきれないので、できていない合計からのプログラムを乗せます

2. p129 演習 5-6改 データの読込と表示 指定したデータ数だけ数値を入力し、 その合計、平均(小数点1桁)、最大、最小を表示させなさい。 実行例を参照のこと。 最初にデータ数を入力するが、 0 以下または設定したデータ数の上限より大きい値 を入力した場合は再入力となること。 テキストにも指示があるように、 配列の要素数は #define で定義しておくこと。 なお、 要素数は学番下3桁+100 とすること よって、 学番22ES091の人は、最初に #define NUMBER 191 のような記載があり、 入力時のメッセージは printf("データ数を1~ %d の範囲で入力: ", NUMBER): となる。 データ数を1~191 の範囲で入力: 0 データ数を1~191の範囲で入力: 192 データ数を1~191 の範囲で入力:4 1番: 23 2番:74 3番:9 4番: 835 合計:941 平均 235.3 最大: 835 最小 : 9 実行結果は、最初に0以下、次に学乱下3桁+100より大きい値を入力し、 再入力となった後に、処理を進めること。 上記の実行例参照。
c:\cwork>gcc hw11-2.c c:\cwork>a データ数を1~139 の範囲で入力:4 1番 : 23 2番:74 3番:9 4番:835 合計 : 952 平均:6,848921 c:\cwork>
164 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ↓ 34 35 36 37 38 39 ¹ 40 41 42 ↓ printf("データ数を1~d の範囲で入力: ", NUMBER); ↓ do {↓ while (n.<_1_||n> NUMBER); + ↓ for(i=0; i<n; i++){+ printf("%2d: "+1); + scanf("%d", &a[i]); + sum += a[i]; + }↓ scanf("%d", &n); + if (n<1> NUMBER) printf("データ数を1~ %d. の範囲で入力:", NUMBER); ↓ printf("%d\n", sum); + printf(": %f\n", (double) sum / NUMBER); + min_=_max = a[0]; + for (i=1;i< NUMBER; i++) {↓ if (a[i]>max) max = a[i]; + if (a[i]<.min) min = a[i]; + }↓ printf("%d\n", _max); + printf("%d\n", min); + 43 ↓ 44 451↓ 46 [EOF] Web return 0; + I 341: 19 C/C++ A

回答

✨ ベストアンサー ✨

プログラムは自分で書いてあるはずなんですが、後半がめちゃくちゃになってますね...

平均についてですが、平均というのはどのようにして求めるでしょうか?
(NUMBERで割るのはちょっと...)

次に最大、最小です
for文で、i=1からNUMBERまで行うということですが、これは一体何がしたいのでしょうか?
例えば2枚目の写真であれば4と入力していますから
a[4]まで調べればよいと思うのですが

質問の教科が化学になっているようです

ティティ

回答ありがとうございます!

先生からも教科書見ればわかるよね、みたいなことで流されてしまって理解出来ていないのが現状です……。
なので、プログラムもここで何がどうなっているのかも分からず教科書のを真似して書いたものなので、理解出来ていないです……

kiku

プログラミングが苦手なのはわかりましたが、講義外で分からなかったところを調べるなりして理解する気はあまりないのでしょうか?

間違っていると思われる箇所は先の回答で示した通りです

その箇所をNUBERではなくnに置き換える必要がありそうですね

ちなみに、以前はPythonで教えたというか質問に回答したような気がするのですが、C言語の勉強に切り替えたのでしょうか、C言語の方が難易度は高いので、理解できていないと自分が困ると思いますよ

ティティ

自分でも教科書を読むなりしてやってみたつもりなのですが、足りなかったようです……すみません……。

C言語の授業なので…💦

ご指摘ありがとうございます。
もう一度やってみることにします!

この回答にコメントする
PromotionBanner
疑問は解決しましたか?

この質問を見ている人は
こちらの質問も見ています😉