2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

【2018年4月開学】東京通信大学Part.3

1 :名無し生涯学習:2018/11/01(木) 12:51:55.96 ID:8asb699G0.net
公式サイト https://www.internet.ac.jp/

前スレ
【2018年4月開学】東京通信大学Part.2 [無断転載禁止](c)2ch.net
https://mao.5ch.net/test/read.cgi/lifework/1523608385/l50

Part.1
https://mao.5ch.net/test/read.cgi/lifework/1504958052/

東京通信大学

・学部 学科
 情報マネジメント学部情報マネジメント学科
 人間福祉学部 人間福祉学科
・キャンパス
 東京 新宿駅前キャンパス(総合校舎コクーンタワー)
 大阪 大阪駅前サテライトキャンパス (大阪モード学園・HAL大阪 総合校舎)
 名古屋 名古屋駅前サテライトキャンパス (総合校舎スパイラルタワーズ)

設置者 学校法人 日本教育財団(旧学校法人モード学園)

21 :名無し生涯学習:2018/11/04(日) 14:12:48.86 ID:Wxt2U5lV0.net
>>20
お題は3-4 最大・平均・最小:データだけの入力
標準入力から複数のデータ(整数)が1行に1個ずつ与えられる。 それらのデータの最大値・平均値・最小値をこの順に1行ずつ使って書き出す。
最大値・最小値は必要最小限の桁数で書き出し、平均値は、整数部は必要最小限の桁数で、小数部は小数点以下3桁まで書き出すこと。

なんだけどとりあえず

#include <stdio.h>

int main(int argc, char *argv[]){
int m, M, d, s, i;

scanf("%d", &M);
s= 0;
for(i= 0; scanf("%d", &d)== 1; i++){

s+= d;
if( d>M ) M= d;
if( d<m ) m= d;
}

printf("%d\n", M);
printf("%.3f\n", (double)s/i);
printf("%d\n", m);

return 0;
}
って書いたら最大値だけ正しく出てあとはめちゃめちゃになる
scanf("%d", &M);消したら最大値だけおかしくなるなーって感じで行ったり来たりしてる
もしかしてfor文何個かいるのかなとかintの宣言数違うのかなとか考え出したりしてもうよくわからん

22 :名無し生涯学習:2018/11/04(日) 14:16:36.04 ID:oPhPs+/Z0.net
For 文の初期値が何故0なんだ?1で試してみたか?

23 :名無し生涯学習:2018/11/04(日) 14:23:48.22 ID:oPhPs+/Z0.net
あとmの初期化がないぞ

24 :名無し生涯学習:2018/11/04(日) 14:38:11.41 ID:4WpHwRbF0.net
・何故、最大値だけうまくいくか?
・最初に1行だけscanfした後にfor文でscanfするのか?

ここを考えるんだ。

与えられた数値同士を比較するんだよな。1番最初は比較するものがないから
まず各変数に最初のscanfでセットする必要があるよな。お前の場合は、最初の
scanfでMという変数に値をセットしている。だからMAXだけはうまくいく。

後はわかるな。

最後にコンパイルエラーは全部消せ。基本だ。

25 :名無し生涯学習:2018/11/04(日) 14:50:10.18 ID:HS+dO3il0.net
>>21
scanf("%d", &M);
s= 0;

この時点で、
 >最初の文字をMに読み込んだ。
 >sに0を代入した。(←ここはダメ)
 >mには何も代入されていない(←ここがもっとダメ)

おれの場合は、最初の文字をsに読み込んで、
それをMとmに代入した。
最初の一文字を読み込んだ時点で、sとMとmは全部同じ値にしておくこと。
一文字読み込んだ時点では、最大と最小合計は全て同じ値だからだよ。

26 :名無し生涯学習:2018/11/04(日) 14:50:20.96 ID:4WpHwRbF0.net
ついでだ。

最初のscanfで読んだMの値をsやmに代入してやるんだ、。
多分そこで詰むだろうから、先読みして記載しておく。

総レス数 1009
319 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200