윤성우의 열혈 C 프로그래밍 - 1차원 배열의 활용[11-1]

Yumin Jung·2023년 7월 19일
0

11-1-1(x)

#include <stdio.h>

int main(void) {
	int arr[5], n, max = 0, min = 0, total = 0;

	printf("5개의 정수를 입력하시오 : ");
	for (n = 0; n < 5; n++)
		scanf_s("%d", &arr[n]);

	for (n = 0; n < 5; n++) {
		if (arr[n] > max)
			max = arr[n];
	}
	printf("입력된 정수중 최댓값 : %d\n", max);

	for (n = 0; n < 5; n++) {
		if (arr[n] < min)
			min = arr[n];
	}
	printf("입력된 정수중 최솟값 : %d\n", min);

	for (n = 0; n < 5; n++)
		total += arr[n];
	printf("입력된 정수의 총 합: %d\n", total);
}

최댓값과 총 합을 구하는 방법은 구현했지만, 최솟값을 구현하지 못하였다.
실행 결과, 계속 최솟값이 0이 나왔다. 이유
min 값을 0으로 주면, arr 배열의 어떠한 값과도 같거나 작았을 것이다.

이유 작성중입니다...... 원인을 찾지 못함.

아래 코드처럼, [총 합과 최솟값, 최댓값]을 한 번에 구하는 for문을 이용해 구현하는 방법이 있었다.

#include <stdio.h>

int main(void) {
	int arr[5];
	int max, min, sum, i;

	for (i = 0; i < 5; i++)
	{
		printf("쓰고 엔터 : ");
		scanf_s("%d", &arr[i]);
	}

	max = min = sum = arr[0];
	for (i = 1; i < 5; i++)
	{
		sum += arr[i];
		if (max < arr[i])
			max = arr[i];
		if (min > arr[i])
			min = arr[i];
	}
	printf("최대: %d", max);
	printf("최소: %d", min);
	printf("총합: %d", sum);
}

11-1-2

#include <stdio.h>

int main(void) {
	char arr[9] = { 'G','O','O','D',' ','T','I','M','E' };
	int arrLen = sizeof(arr) / sizeof(char);

	for (int i = 0; i < arrLen; i++)
		printf("%c", arr[i]);
	printf("\n");
	return 0;
}

char형 1차원 배열을 선언과 동시에 char형 문자로 초기화 하였다.
arrLen -> 배열 길이를 굳이(?) 배열의 크기에 char형 크기를 나눠 알아냈고, 출력하였다.

profile
문과를 정말로 존중해

1개의 댓글

comment-user-thumbnail
2023년 7월 19일

아주 중요한 정보를 얻었습니다, 감사합니다.

답글 달기