ページ 11

複数の入力した整数値から最大・最小値の求め方

Posted: 2020年10月26日(月) 02:10
by TAMO
複数の入力した整数値から最大・最小値の求め方を教えていただけますか?
こちらを書いたのですが、うまく動きません。

コード:

#include <stdio.h>

int main(void) {
int data, max, min;

scanf("%d", &max);
scanf("%d", &min);

for(; scanf("%d", &data)==1;) {
if (data > max) max = data;
if (data < min) min = data;
}

printf("%d\n", max);
printf("%d\n", min);

return 0;
}

Re: 複数の入力した整数値から最大・最小値の求め方

Posted: 2020年10月26日(月) 22:03
by みけCAT
maxとminは個別の入力値ではなく、最初に入力した値に初期化するといいでしょう。

コード:

#include <stdio.h>

int main(void) {
	int data, max = 0, min = 0, is_first = 1;

	for(; scanf("%d", &data)==1;) {
		if (is_first || data > max) max = data;
		if (is_first || data < min) min = data;
		is_first = 0;
	}

	if (is_first) {
		puts("no input");
	} else {
		printf("%d\n", max);
		printf("%d\n", min);
	}

	return 0;
}
こうしてもいいです。

コード:

#include <stdio.h>

int main(void) {
	int data, max, min;

	if (scanf("%d", &max) != 1) {
		puts("no input");
		return 0;
	}
	min = max;

	for(; scanf("%d", &data)==1;) {
		if (data > max) max = data;
		if (data < min) min = data;
	}

	printf("%d\n", max);
	printf("%d\n", min);

	return 0;
}