C++

[강의] 9월 5일 수업정리

k-codestudy 2024. 9. 6. 02:32

오늘도 배열에 대해 공부하였다.

 

배열에서 중요한 점

  1. 배열의 인덱스 고유 ID
    • 배열은 인덱스의 고유 ID를 사용하여 관리하는 방식으로 설계된다. 고유 ID와 데이터는 쌍으로 이루어져 있으며, 고유 ID를 통해 데이터를 호출할 수 있다.
    • 그러나 데이터를 통해 고유 ID를 역으로 찾는 것은 불가능하며, 처음부터 순차적으로 데이터를 탐색해야 한다.
    • 즉, 배열에서 가장 중요한 것은 인덱스지만, 데이터를 보고 인덱스를 직접적으로 찾을 수는 없다.
  2. 배열을 사용할 때 주의할 점
    • 배열 사이즈를 직접 얻어오지 말라.
      • 이유는 안전성 문제이다. 일반적으로 sizeof를 사용하여 배열의 크기를 구하지만, 이 방법은 포인터를 사용할 때 잘못된 값을 반환할 수 있어 권장되지 않습니다.
      • 대신 sizeof를 사용할 때 자료형을 직접 명시하는 습관을 들이는 것이 좋습니다 (변수명을 넣지 않도록 주의).
    • 배열을 사용하는 방법
      • 인덱스로 접근하는 방법: 고유 ID를 부여하고 해당 ID를 통해 데이터를 관리하는 방식.
      • ArrayList 사용: 배열의 크기(공간)를 넉넉히 설정한 후, 앞에서부터 데이터를 쌓아가는 방식. ArrayList는 중간에 데이터를 삭제할 경우 뒤의 데이터가 왼쪽으로 시프트 될 수 있어, 데이터 관리에 주의가 필요하고, 데이터를 얼마나 쌓았는지 확인하기 위해 이중으로 데이터를 관리해야 한다.

문제 풀이

문제 1. 배열의 총점과 평균을 구하는 프로그램 (평균은 소수점 포함)

#include <iostream>

int main()
{
	const int nSize = 5;
	int arData[nSize]{ 34,55,12,1,31 };

	int nTotal{};
	float fAverage{};

	for (int i = 0; i < nSize; i++)
	{
		nTotal += arData[i];
	}

	fAverage = (float)nTotal / (float)nSize;

	printf("%d\n", nTotal);
	printf("%f\n", fAverage);
}
  • cosnt ( 상수 : 변하지 않는 값)  키워드를 사용하여 nSzie를 5로 고정시킴.
  • arData라는 배열을 생성하고 nSize의 값을 배열의 크기로 지정 후, 초기 값 설정
  • 정수형 변수인 nTotal, 실수형 변수인 fAverage를 선언.
  • for문을 이용하여 nSize보다 작을 때까지 반복하여 nTotal에 arData의 모든 값을 더하여 저장.
  • 캐스팅을 사용하여 정수형을 실수형으로 변환시킨 후 fAverage에 그 값을 저장함
  • printf를 사용하여 nTotal(총점), fAverage(평균)을 출력
  •  

문제 2. 배열에 있는 데이터 중 짝수의 개수를 구하는 프로그램

#include <iostream>

int main()
{
	const int nSize = 10;
	int arData[nSize]{ 34,55,12,1,31,2,42,11,2124,124 };

	int nEvenConut{};
	int nRemainder{};

	for (int i = 0; i < nSize; i++)
	{
		nRemainder = arData[i] % 2;

		if (nRemainder == 0)
			nEvenConut++;
	}

	printf("%d", nEvenConut);
}
  • cosnt ( 상수 : 변하지 않는 값)  키워드를 사용하여 nSzie를 10으로 고정시킴 
  • arData라는 배열을 만들어서 nSize의 값을 배열의 크기로 지정한 후, 초기 값을 설정
  • 정수형 변수인 nEvenCount, nRemainder를 선언
  • for문을 이용하여 nSize보다 작을 때까지 반복하여 arData [i] % 2 한 값을 nRemainder에 저장 (짝수 판별)
  • nRemainder가 0이라면 nEvenCount를 1 증가시킴
  • printf를 사용하여 nEvenCount(짝수의 개수)를 출력시킴
  •  

  • 배열의 크기를 표현하는 변수명은 보통 length나 size를 사용합니다.

'C++' 카테고리의 다른 글

[강의] 9월 11일 수업정리  (0) 2024.09.11
[강의] 9월 6일 수업정리  (0) 2024.09.07
[강의] 9월 4일 수업정리  (0) 2024.09.05
[강의] 9월 3일 수업정리  (1) 2024.09.04
[강의] 8월 30일 수업정리  (0) 2024.08.30