배열의 기본 문법

[실습] 배열에서 최댓값 찾기

#include <stdio.h>

int main(void) {
   
   int arr[5] = { 111, 124, 122, 0, 123};
   int nMax = 0;

   for (int i = 0; i < 5; i++) {
      if ( nMax < arr[i]) {
         nMax = arr[i];
      }
   };

   printf("output: %d", nMax);

   return 0;
}

[실습] 버블 정렬

#include <stdio.h>

int main(void) {
   
   int arr[5] = { 111, 124, 122, 0, 123};
   

   for (int i = 5; i > 0; i--) {

      for (int j = 0; j < 5; j++) {
         
         if (arr[j] > arr[j + 1]) {
            int temp = arr[j];
            arr[j] = arr[j + 1];
            arr[j + 1] = temp;
         }
      }
   }

   printf("output: ");

   for (int i = 0; i < 5; i++) {
      printf("%d,", arr[i]);
   }

   return 0;
}

[실습] 선택 정렬

#include <stdio.h>

int main(void) {
   
   int arr[5] = { 111, 124, 122, 0, 123};
   
   for (int i = 0; i < 5; i++) {
      int minIndex = i;

      for (int j = i + 1; j < 5; j++) {
         
         if (arr[j] < arr[minIndex]) {
            minIndex = j;
         }
      }

      int temp = arr[i];
      arr[i] = arr[minIndex];
      arr[minIndex] = temp;
   }

   printf("output: ");

   for (int i = 0; i < 5; i++) {
      printf("%d,", arr[i]);
   }

   return 0;
}

다차원 배열

[실습] 교차와 달팽이 숙제

#include <stdio.h>

int main(void) {

   int arr[5][5] = { { 0 } };

   for (int i = 0; i < 5; i++)
   {
      //  홀수
      if (i & 1) {
         for (int j = 0; j < 5; j++)
         {  
            arr[i][j] = (10 * (i / 2 + 1) ) - j;
         }  
      } 
      //  짝수
      else {
         for (int j = 0; j < 5; j++)
         {  
            arr[i][j] = j + 1 + (10 * i / 2);
         }  
      }
   }

   for (int i = 0; i < 5; i++)
   {
      for (int j = 0; j < 5; j++)
      {
         printf("%d ", arr[i][j]);
      }

      putchar('\\n');

   }
   return 0;
}

// 모범 답안
#include <stdio.h>

int main(void) {

   int arr[5][5] = { { 0 } };
   int cnt = 0;

   for (int i = 0; i < 5; i++)
   {
     for (int j = 0; j < 5; j++)
      {  
         if (i & 1) {
           arr[i][j] = ++cnt; 
         } else {
            arr[i][4 - j] = ++cnt; 
         }
      }  
   } 

   for (int i = 0; i < 5; i++)
   {
      for (int j = 0; j < 5; j++)
      {
         printf("%d ", arr[i][j]);
      }

      putchar('\\n');

   }
   return 0;
}

1 2 3 4 5 
10 9 8 7 6 
11 12 13 14 15 
20 19 18 17 16 
21 22 23 24 25 

고급 기법 Lookup 배열