ページ 11

c

Posted: 2016年2月14日(日) 20:59
by MORIRIN
入力された数字の最小値、最大値、合計を求めるプログラミングですが、このコードでいくつか意味がわからないところがあるので教えてください。
min,max,xの関係です。 if (max < x) max = x;、 if (min > x) min = x; このmax,min,xはどのようになっているのかがわかりません。例えばn = 3
x = 1 ,2 ,3と入力した場合当然最小値は1,最大値は3と表示されますがその時に上のコードはどのように働いているのかを知りたいです。
説明不足かもしれませんがよろしくお願いします。
[code=C]#include <stdio.h>

int main(void){
int n, x, min, max;
long sum;
int i;

scanf("%d", &n);
scanf("%d",&x);
min = max = sum = x;
for (i = 1; i < n; i++) {
scanf("%d", &x);
sum += x;
if (max < x) max = x;
if (min > x) min = x;
}
printf("%d %d %ld\n", min, max, sum);

return 0;

}
[/code]

Re: c

Posted: 2016年2月14日(日) 22:03
by box
もっと適切なタイトルを付けましょう。
MORIRIN さんが書きました: min,max,xの関係です。 if (max < x) max = x;、 if (min > x) min = x; このmax,min,xはどのようになっているのかがわかりません。

コード:

    scanf("%d",&x);
    min = max = sum = x;
ここで、最初に入力したxを仮の最大値・最小値としています。
MORIRIN さんが書きました:

コード:

        if (max < x) max = x;
        if (min > x) min = x;
2個目以降に入力したxについて、
「その時点での最大値よりも大きければ、そのxを最大値とする」
「その時点での最小値よりも小さければ、そのxを最小値とする」
という処理を行なっています。

Re: c

Posted: 2016年2月14日(日) 22:58
by MORIRIN
有り難うざいました!おかげさまで解決することができました〜

Re: c

Posted: 2016年2月14日(日) 23:25
by みけCAT
解決したのでしたら、「解決チェック」をお願いします。
解決チェックをするには、投稿画面の「送信」の右にある「解決!」にチェックを入れた状態で返信を投稿してください。