■ このスレッドは過去ログ倉庫に格納されています
【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