• 締切済み

pascal言語

pascal言語のプログラミングについて質問があります。 repeat文やwhile文を用いて数値を入力するとき、その文の中で入力された数値を比較して最大値や最小値を出す方法が分かりません。数値の比較ですと配列以外に思い浮かばないのですが、配列を用いない場合どのようにすれば良いのでしょうか? よろしくお願いします。

みんなの回答

noname#194317
noname#194317
回答No.1

今ひとつ、何がやりたいのかが伝わってこないんですが、最大最小が解ればいいんだったら、変数を二つ用意して(nmax,nminとでもしますか)、これをゼロで初期化しておきます。そしてループの中で入力された数値と、nmax,nminを比較し、nmaxより大きければnmaxを更新、nminより小さければnminを更新します。これでループを抜けた時には、この二つの変数に最大値と最小値が入っています。 入力される数値の範囲が解らない場合は、ゼロで初期化しただけだとまずいです。なぜかと言うと、もし1~9が入力されたら、欲しい最小値は1ですが、ゼロで初期化するとゼロの方が小さいため、最小値がゼロにされてしまうからです。また、入力値が全部マイナスの場合、今度は最大値で同様の問題を起こします。なので、ループの一回目だけは無条件にnmax,nminに入力された値をセットする方が安全でしょう。

関連するQ&A