ImFe's study

실습과제-1 배열에 관련된 프로그래밍 본문

Programming/C언어 백준 풀이

실습과제-1 배열에 관련된 프로그래밍

ImFe 2020. 4. 3. 15:47

배열에 관련된 코딩을 해야하는 과제이다.

 

1. 0 이전까지의 배열의 크기를 계산(배열의 갯수)
2. 배열변수들의 값의 합계, 그중 최소값, 그중 최대 값을 계산


#include<windows.h> //system사용을 위해서 사용(콘솔 바로꺼짐 방지)
#include<stdio.h>


int main()
{
	int sum = 0; // 배열의 합을 저장할 변수
	int max; // 배열의 최댓값을 저장할 변수
	int min; // 배열의 최솟값을 저장할 변수
	

	int number[12] = { 90,11,54,69,21,34,57,87,46,9,77,0 };
	printf("배열변수에 저장된 %d개의 값\n", sizeof(number) / sizeof(int) - 1);
		// 과제에서 0이전까지만 세기로 했으니까 -1해줌

	max = number[0];
	min = number[0];

	for (int i = 0; i < sizeof(number) / sizeof(int)-1; i++)
		// 12x4/4니까 12번 실행 근데 0은 안띄워야하니까 11번만 실행되어야함
		// sizeof(number) = 배열이 12개 / sizeof(int) = int = 4byte
		// 바로 위의 주석을 생각은 했는데 어떻게 해야할지를 모르겠었다. 
		// 선배님께 질문을 통해 i<sizeof(number)/sizeof(int) 부분에 -1을 붙여서 해결.
	{
		printf("%d ", number[i]);
	}

	printf("\n");
	printf("\n");
	printf("\n");
	printf("\n");		//가독성을 위해 줄띄기
	

	for (int k = 0; k < sizeof(number) / sizeof(int) - 1; k++)
	//어짜피 마지막 배열이 0이여서 해줄필요는 없음
	{
		sum += number[k];						//배열의 합 구하기, 대입연산자 사용
	}
	printf("값의 합계 : %d\n", sum);
	
	for (int p = 0; p < sizeof(number) / sizeof(int)-1 ; p++)
	{
		if (number[p] > max)
		{
			max = number[p];
		}
		if (number[p] < min)
		{
			min = number[p];
		}
	}
	
	printf("최소 값 : %d\n", min);
	printf("최대 값 : %d\n", max);
	system("pause");
	return 0;
}


배열에 관한 프로그래밍

1. 배열의 최대값, 최소값을 추출하기위해 
max = number[0]

min = number[0]
을 해준부분이 인상깊었다.

2. for문에서 sizeof()를 이용해 조건식을 실행한부분이 인상깊었다

Comments