-
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