ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 04 c++ 배열
    Studies/C++ 2022. 1. 8. 16:41

    1.배열의 개념

    (1)코드

    #include<iostream>
    using namespace std;
    
    int main() {
    	const int SIZE = 5;
    	int arr[SIZE] = { 10,20,30,40,50 };
    	cout << arr << endl;
    	cout << arr[0] << endl;
    	cout << &arr[0] << endl;
    	cout << sizeof(arr) << endl;
    	cout << sizeof(arr[0]) << endl;
    	for (int x : arr) {
    		cout << x << endl;
    	}
    	cout << sizeof(arr) / sizeof(arr[0]) << endl;
    	return 0;
    }

     

    (2)실행결과

     

    (3)배열 개념

     

    배열의 주소는 상수다. 변경할 수 없다.
    배열 이름의 주소는 배열의 첫번째 방의 주소이다.
    배열의 이름은 포인터 상수다.


    int* pnum;
    포인터변수의 size는 4byte

    int num[5];

    num => #100 [1,2,3,4,5]
    num은 100번지(주소)라는 상수

    int* pnum=num;
    num+0==&num[0]
    num+1==&num[1]
    *(num+1)==num[1]
    *(pnum+1)==pnum[1]


    2.학생 성적 평균 구하기

    (1)코드

    #include<iostream>
    using namespace std;
    
    int main() {
    	const int SIZE = 5;
    	int arr[SIZE];
    	int sum = 0;
    	for (int i = 0; i < SIZE; i++) {
    		cout << "학생 정보 입력 : ";
    		cin >> arr[i];
    		sum += arr[i];
    	}
    	cout << sum / SIZE << endl;
    	return 0;
    }

    (2)실행결과

     

    3.0~9 난수발생 1000번/ 난수 몇개씩 발생했는지

    (1)코드

    #include<iostream>
    #include <cstdlib>
    #include <ctime>
    using namespace std;
    
    int main() {
    	const int SIZE = 10;
    	srand((unsigned)time(NULL));
    	int arr[SIZE] = {0,};
    	
    	//for (int i = 0; i < 10;i++) {
    	//	arr[i] = 0;
    	//}
    	for (int i = 0; i < 1000; i++) {
    		
    		int num = rand() % 10;
    		arr[num] += 1;
    	}
    	for (int i = 0; i < 10;i++) {
    		cout << i << "\t" << arr[i] << endl;
    	}
    }

     

    (2)실행결과

     

    4. 5명 성적 히스토그램

    (1)코드

    #include<iostream>
    #include <cstdlib>
    #include <ctime>
    using namespace std;
    
    int main() {
    	const int SIZE = 5;
    	int count[SIZE] = { 10,5,8,6,2 };
    	for (int i = 0; i < SIZE; i++) {
    		cout << "학생 " << i + 1 << " : ";
    		for (int j = 0; j < count[i]; j++) {
    			cout << "*";
    		}
    		cout << endl;
    	}
    
    	return 0;
    
    }

     

    (2)실행결과

     

    5. 도형 세 개 10*10 배열에 하나씩 랜덤으로 넣기

    (1)코드

    #include<iostream>
    #include<string>
    #include<ctime>
    using namespace std;
    int main() {
    	const int ROW = 10;
    	const int COL = 10;
    	int arr[ROW][COL] = { 0, };
    	string item[4] = { "□","★","※","●" };
    	srand((unsigned)time(NULL));
    	
    	for (int i = 1; i <= 3; i++) {
    		int randRow = rand() % 10;
    		int randCol = rand() % 10;
    		if (arr[randRow][randCol] ==0)
    			arr[randRow][randCol] = i;
    		else
    			i--;
    	}
    	for (int i = 0; i < ROW; i++) {
    		for (int j = 0; j < COL; j++) {
    			switch (arr[i][j]) {
    			case 0:
    				cout << item[0]; break;
    			case 1:
    				cout << item[1]; break;
    			case 2:
    				cout << item[2]; break;
    			case 3:
    				cout << item[3]; break;
    			}
    
    		}
    		cout << endl;
    	}
    
    }

     

    (2)실행결과

     

    6. 4*6 좌석 예약 

    A행 1열부터 시작해서 F행 6열로 끝나고 

    A1 처럼 입력을 받음

    (1)코드

    #include<iostream>
    #include<string>
    #include<ctime>
    using namespace std;
    int main() {
    	const int ROW = 6;
    	const int COL = 4;
    	int arr[ROW][COL] = { 0, };
    	string item[2] = { "□","●" };
    	
    	while (true) {
    		//system("cls");
    		//좌석 현황 출력
    		for (int i = 0; i < ROW; i++) {
    			cout << char(i + 'A') << " : ";
    			for (int j = 0; j < COL; j++) {
    				switch (arr[i][j]) {
    					case 0:
    						cout << item[0]; break;
    
    					case 1:
    						cout << item[1]; break;
    
    				}
    			}
    			cout << endl;
    
    		}
    
    		//좌석 입력
    		char x, y;
    		cin >> x >> y;
    		if (arr[int(x - 'A')][int(y - '1')] == 0) {
    			arr[int(x - 'A')][int(y - '1')] = 1;
    			cout << "예약 완료" << endl;
    		}
    		else {
    			cout << "이미 예약된 좌석입니다." << endl;
    		}
    		//system("pause");
    	}
    	return 0;
    }

    (2)실행결과

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

    05 제어문과 함수/배열  (0) 2022.01.18
    STL 자료구조  (0) 2022.01.09
    03 c++ 조건문 활용(카페 프로그램)  (0) 2022.01.08
    02 C++ 기본입출력(2)  (0) 2022.01.03
    01 C++ 기본입출력(1)  (0) 2022.01.03

    댓글

Designed by Tistory.