(C++) 스마트팩토리 - 14일차

내 이름 안찬찬·2023년 2월 5일
0
post-thumbnail

배열

배열이란?

  • 한 번에 여러 개의 값들을 저장할 수 있는 변수
  • 배열 변수를 이용하면 비슷한 값들을 쉽게 처리할 수 있음

배열의 선언 및 초기화

  • 선언과 초기화가 분리되어 있는 경우
	std::string friends[2]; //선언만 할 경우 초기화 값을 써야한다.
	friends[0] = "홍길동"; //초기화
	friends[1] = "성춘향"; //초기화
	friends[1] = "코딩온"; // 변경 가능

  • 선언과 초기화를 동시에 하는 경우
	std::string friends[] = { "홍길동", "성춘향", "코딩온" }; 
    // 선언과 초기화가 함께 될 땐 몇개의 원소(인덱스)를 쓸 지 적지 않아도 된다.

배열의 인덱싱

  • 인덱스 : 배열 안 원소의 순서. [숫자] 형태 사용
  • 인덱스는 1이 아닌 0부터 시작
	int nums[] = { 1, 2, 3 };
	std::cout << nums[2] << "\n"; // 3출력

	double dnums[] = { 1.5, 2.5, 3.5 };
	std::cout << dnums[2] << "\n"; //3.5 출력

	float fnums[] = { 9, 3.14, 4 };
	std::cout << fnums[1] << "\n"; // 3.14 출력

다차원 배열

	// --------------2차원 배열 ----------------

	std::string fruit[2][3] = { 
		{"apple","grape","strawberry"},
		{"orange","banana","melon"} 
	};
    
    // ----------------3차원 배열------------------

	std::string fruits[2][3][2] = {
	{{ "1" , "2" } , { "주인공" , "www" } , { "3" , "4" }},
	{{ "0" , "9" } , { "8" , "7" } , { "6" , "5" }}
	};

배열과 for문

	std::string friends[] = { "홍길동", "성춘향", "코딩온" };

	for (int i = 0; i < 3; i++) {
		std::cout << friends[i] << std::endl;
	}
    
    	// sizeof(); : sizeof안에 변수 or 타입을 인자로 넘겨줌.
        //             크기를 byte단위로 구해줌
        
	for (int i = 0; i < sizeof(friends)/sizeof(std::string); i++) { //sizeof[0]으로 나눠도 된다.
		std::cout << friends[i] << std::endl;
	}
 // ----------2차원 배열과 for문------------
 
 	std::string fruit[2][3] = { 
		{"apple","grape","strawberry"},
		{"orange","banana","melon"} 
	};

	for (int i = 0; i < 2; i++) {
		for (int j = 0; j < 3; j++) {
			std::cout << fruit[i][j] << " ";
		}
		std::cout << std::endl;
	}  

배열과 for -each문

	std::string friends[] = { "홍길동", "성춘향", "코딩온" };

	for (auto f : friends) { //for-each문은 배열을 안쓰고 각각의 값에 갈 수 있음, 배열의 크기 만큼 돔
		//f = "홍길동"
		//f = "성춘향" 로 바뀜
		//f = "코딩온" 로 바뀜
		std::cout << f << std::endl;
	}
	std::string fruit[2][3] = { 
		{"apple","grape","strawberry"},
		{"orange","banana","melon"} 
	};

	for (auto &f : fruit) {
		for (std::string f2 : f) {
			std::cout << f2 << "2 ";
		}
		std::cout << std::endl;
	}


실습

실습 1

(1) city라는 배열 변수를 만들고, 5개의 나라 이름을 값으로 지정
(2) for문 혹은 for-each문을 활용하여 city안의 모든 원소를 출력

	std::string city[] = { "한국", "미국", "일본", "중국", "북한" };
	
	for (auto c : city) { 
		std::cout << c << std::endl;
	}

실습 2

(1) grade라는 배열 변수를 선언하고, 학생 5인의 성적 입력받기
(2) for문 혹은 for-each문을 활용하여 학생 5인의 성적 평균 산출

	std::string students[] = { "짱구", "맹구", "철수", "훈이", "유리" };

	double grade[5];
	double sum = 0;

	for (int i = 0; i < 5; i++) {
		std::cout << students[i] << "의 성적: ";
		std::cin >> grade[i];
		sum = sum + grade[i];
	}

	std::cout << "떡잎유치원 평균 성적: " << sum / 5;


마무릐!

배열에 대해 알아보았다.
배열은 C++을 배우는 이유 중 하나라고 생각한다!

깊게 들어가진 않았기에 이해가 되지 않는 부분은 없었다
포인터를 배우고 나서 배열을 쓰기 시작하면 어렵겠다는 생각이 본능적으로 들었다

그게 아니더라도 포인터는 무서운 녀석이니까.. 당연한건가

포인터에 대해 미리 예습을 좀 해둬야겠다고 생각이 들었다!

이상!

profile
스마트팩토리 개발자가 되기 위한 □□ !!

0개의 댓글