[50] 기억력 게임
실습예제 : 함수 & 포인터 & 배열 → 기억력 게임 . 처음 1회만 셔플이 된 10장의 카드를 오픈해서 보여준다 . 게임이 시작되면, 블라인드 처리된 카드의 짝을 맞춘다 . 플레이어는 2개의 카드 인덱스를 입력 . 카드의 값(그림)이 일치하면 -> 카드 오픈 . 카드 10장이 모두 열리면 게임종료 ※ 입력을 제외한 모든 '기능'은 함수로 구현 void main(){ int game_num = 10; int front[10] = {1, 1, 2, 2, 3, 3, 4, 4, 5, 5}; int back[10] = {0}; // Hint print_front(&front[0], 10); }
2020. 7. 23.
[44] 연습문제 : 포인터
연습문제 1 // 문제 1) // 포인터를 활용한 a와 b 값 교체 int a = 10; int b = 20; 더보기 int a = 10; int b = 20; int *ap = &a; int *bp = &b; int temp = ap[0]; // *ap; *ap = *bp; *bp = temp; printf("a : %d / b : %d\n", *ap, *bp); 연습문제 2 // 문제 2) // 포인터를 활용한 배열 arr1[]과 arr2[] 의 값 교체 // 값을 찾아 교체 : 40 80 int arr1[3] = {30, 40, 50}; int arr2[3] = {60, 70, 80}; 더보기 int arr1[3] = {30, 40, 50}; int arr2[3] = {60, 70, 80}; int..
2020. 7. 23.
[43] 배열과 포인터
배열의 포인터 변수 선언 . &변수명[index] ㄴ 배열의 기준이 될 주소 한 개를 대입 // 예제 1) int arr[3] = {10, 20, 30}; int *p = &arr[0]; p[1] = 200; printf("arr[1] : %d\n", arr[1]); // 예제 2) int scores[5] = {98, 100, 50, 76, 80}; int *sp = &scores[2]; sp[0] = 10; printf("sp[0~] : %d %d %d\n", sp[0], sp[1], sp[2]); printf("sp[-1] : %d\n", sp[-1]); // 예제 3) int *sp2 = &scores[0]; int *sp3 = sp2; sp3[4] = 0; printf("%d %d %d %d %..
2020. 7. 23.
[40] 정렬
정렬 : 배열응용 . 기준 인덱스(0~)의 변수부터 나머지와 값 비교 . 최대값을 찾아서 값 교환 . 기준 인덱스 증가 . 반복하며 내림차순 정렬 진행 . 흐름 {5, 6, 8, 1, 3} // max = 8 {8, 6, 5, 1, 3} // max = 6 {8, 6, 5, 1, 3} // max = 5 {8, 6, 5, 3, 1} // max = 3 {8, 6, 5, 3, 1} // max = 1 srand(time(0)); int score[5] = {0}; for(int i=0; i
2020. 7. 23.
[37] 연습문제 : 2차원 배열
연습문제1 int d_arr[3][4] = {{1,2,3,4},{12,33,14,15},{23,24,25,26}}; int s_arr[12] = {0}; // 위 2차원의 값을 1차원 arr에 저장 후 출력 더보기 int k = 0; for(int i=0; i 303 ==> 3200 // 3. 주소 2개를 입력하면 관리비 교환 // 4. 관리비 가장많이 나온집 출력 더보기 int apt[3][4] = { {101, 102, 103, 104}, {201, 202, 203, 204}, {301, 302, 303, 304}, }; int pay[3][4] = { {1000, 1100, 1200, 1300}, {2000, 2100, 12200, 2300}, {3000, 3100, 3200, 3300}, }; /..
2020. 7. 23.