入力された数字の最小値、最大値、合計を求めるプログラミングですが、このコードでいくつか意味がわからないところがあるので教えてください。
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]
			
									
									
						c
Re: c
もっと適切なタイトルを付けましょう。
「その時点での最大値よりも大きければ、そのxを最大値とする」
「その時点での最小値よりも小さければ、そのxを最小値とする」
という処理を行なっています。
			
									
									ここで、最初に入力したxを仮の最大値・最小値としています。
2個目以降に入力したxについて、
「その時点での最大値よりも大きければ、そのxを最大値とする」
「その時点での最小値よりも小さければ、そのxを最小値とする」
という処理を行なっています。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
						プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: c
解決したのでしたら、「解決チェック」をお願いします。
解決チェックをするには、投稿画面の「送信」の右にある「解決!」にチェックを入れた状態で返信を投稿してください。
			
									
									解決チェックをするには、投稿画面の「送信」の右にある「解決!」にチェックを入れた状態で返信を投稿してください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
						
 メニュー
 メニュー カレンダー
 カレンダー Clock
 Clock 最新メンバー
 最新メンバー 投稿数
 投稿数 Link to us
 Link to us カウンター
 カウンター