7.18.2017

07.18 C++ 복습 - 배열

#include <iostream>
using namespace std;
void main() {
        /*
        int num1;
        int num2;
        int num3;
        //배열 :  똑같은 자료형을 나열시켜놓은 묶음

        //자료형 변수name[개수];

        //3개의 숫자를 나열 시키는 변수

        int arr[3];
        arr[0] = 10;
        arr[1] = 20;
        arr[2] = 30;
        printf("%p %p %p \n", &num1, &num2, &num3);
        printf("%p %p %p \n", &arr[0], &arr[1], &arr[2]);
        cout << arr[0] << " , " << arr[1] << " , " << arr[2] << endl;
        */

===============================================================================
 
        //문자를 담을 배열변수 10개 생성 후 0~9번째 인덱스까지 A~J를 차례대로 대입 후 출력
        const int SIZE = 10;
        char a[SIZE];
        char k = 65;

        for (int i = 0; i < 10 ; i++) {
                a[i] = k;
                k++;
        }
        for (int j = 0; j < SIZE; j++) {
                cout << j << "는 " << a[j] << endl;
        }

===============================================================================

        //배열의 개수 구하기
        int arr[] = { 1,2,3,4,5 };
        cout << sizeof(arr)/sizeof(int) << endl;

        char arr[] = { 'A', 'B', 'C' };
        cout << sizeof(arr);
       
===============================================================================

        int j = 0;
        int arr[] = { 1,2,3,4,5 }; //1,2,3,4,5 넣음
        j = arr[sizeof(arr)/sizeof(int )-1];
        for (int i = 4; i > 0; i--) {
                arr[i] = arr[i-1];
        } arr[0] = j;
        for (int k = 0; k < 5; k++) {
                cout << arr[k] << endl;
        }

===============================================================================
        //답안
        const int SIZE = 100;
        int arr2[SIZE], k =0;
        int arr1[] = { 1,2,3};
        int index = 0;
        k = sizeof(arr1) / sizeof(int);
        for (int i = 0; i < k + k; i++) {
                arr2[i] = arr1[index];
                if (i < k-1) {
                        index++;
                }
                else if(i>=k){
                        index--;
                }

         cout << arr2[i] << " ";
 }

===============================================================================
        //오류나는 내 답안
const int SIZE = 100;
 int arr2[SIZE], k =0;
 int arr1[] = { 1,2,3, 4 };
 k = sizeof(arr1) / sizeof(int);
 for (int i = 0; i < k; i++) {
  arr2[i] = arr1[i];
  cout << arr2[i] << " ";
 }
 for (int j = k; j < k + k; j++) {
  for (int m = k; m >= j; m--) {
   arr2[j] = arr1[m];
  }
  cout << arr2[j] << " ";
 }

===============================================================================
//20개의 랜덤값 10개의 배열에 중복되지 않게 넣고 선택정렬하기
        const int SIZE = 10;
        int arr[SIZE];
        srand(time(NULL));
        for (int i = 0; i < SIZE; i++) {
                arr[i] = rand() % 20 + 1;
                for (int j = 0; j < i; j++) {
                        if (arr[i] == arr[j]) {
                                i--;
                                break;
                        }
                }
        }
        int min;
        for (int i = 0; i < sizeof(arr) / sizeof(int); i++) {
                min = i;
                for (int k = i + 1; k < sizeof(arr) / sizeof(int); k++) {
                        if (arr[min] > arr[k]) min = k;       
                }
                int temp = arr[min];
                arr[min] = arr[i];
                arr[i] = temp;
        }
        for(int j = 0; j <sizeof(arr)/sizeof(int); j++){
                cout << arr[j] << " "; 
        }
}

댓글 없음:

댓글 쓰기