c

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
MORIRIN
記事: 8
登録日時: 8年前

c

#1

投稿記事 by MORIRIN » 8年前

入力された数字の最小値、最大値、合計を求めるプログラミングですが、このコードでいくつか意味がわからないところがあるので教えてください。
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]

box
記事: 2002
登録日時: 13年前

Re: c

#2

投稿記事 by box » 8年前

もっと適切なタイトルを付けましょう。
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を最小値とする」
という処理を行なっています。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

MORIRIN
記事: 8
登録日時: 8年前

Re: c

#3

投稿記事 by MORIRIN » 8年前

有り難うざいました!おかげさまで解決することができました〜

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: c

#4

投稿記事 by みけCAT » 8年前

解決したのでしたら、「解決チェック」をお願いします。
解決チェックをするには、投稿画面の「送信」の右にある「解決!」にチェックを入れた状態で返信を投稿してください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

“C言語何でも質問掲示板” へ戻る