Presentation is loading. Please wait.

Presentation is loading. Please wait.

7장 배열 배열의 정의 배열의 초기화 1차원 배열 2차원 및 다차원 배열 문자 배열 배열과 구조.

Similar presentations


Presentation on theme: "7장 배열 배열의 정의 배열의 초기화 1차원 배열 2차원 및 다차원 배열 문자 배열 배열과 구조."— Presentation transcript:

1 7장 배열 배열의 정의 배열의 초기화 1차원 배열 2차원 및 다차원 배열 문자 배열 배열과 구조

2 배열의 정의 배열의 정의 동일한 자료형을 동시에 다수 선언할 때 사용할 수 있는 방법 자료형 배열이름 [ 배열크기 ]
자료형   배열이름 [ 배열크기 ] int       score[10]; 배열의 원소의 개수는 한 개에서부터 메모리가 허락되는 범위 내에서의 무한대까지 선언이 가능하다. 배열로 선언할 수 있는 자료형은 모든 자료형이 된다. 배열의 원소를 나타내는 첨자는 ‘0’번부터 시작한다.

3 배열의 초기화 02 배열의 초기화 선언을 먼저하고 배열의 각 원소의 값을 할당하는 방법 int a[3]; // 배열의 선언
선언과 동시에 값을 할당하는 방법 int a[3] = { 10, 15, 20 };  // 배열의 선언과 동시에 초기화

4 【예제 7-1】Ex1.c 02 배열의 초기화 01 #include <stdio.h> 02 int main(void)
03 {   int i; 05    int a[] = { 5, 10, 15 }; 06 07    for (i = 0; i < 3; i++) 08    { 09            printf("a[%d] = %d\n", i, a[i]); 10    } 11    return 0; 12 } 표준입력 스트림

5 【예제 7-2】Ex2.c 02 배열 예제 01 #include <stdio.h> 02 int main(void)
03 { 04     int A[5] = { 1, 2, 3, 4, 5 }; 05     int i, sum = 0; 06     double average; 07 08     for (i = 0; i < 5; i++) 09        sum += A[i]; 10    average = (double)sum / i; 11 12    printf("배열 A의 원소의 합은 %d이다.\n", sum); 13    printf("배열 A의 원소의 평균은 %4.2lf이다.\n", average); 14   return 0; 15 } 표준입력 스트림

6 배열의 종류 03 배열의 종류 배열은 선언 시에 괄호의 수에 따라 1차원 배열, 2차원 배열, 3차원 배열 그리고 다차원 배열
등 원하는 형태를 만들 수 있다. 2차원 배열은 2차원 디지털 이미지의 값을 표현할 수 있다. 3차원 배열은 3D 그래픽 데이터를 표현할 수 있는 형태이다.

7 【예제 7-3】Ex3.c 02 2차원 배열 예제 01 #include <stdio.h>
02 int main(void) 03 {   int i, j; 05    int a[2][3] = { { 15, 20 }, { 25, 30 } }; 06   07    for (i = 0; i < 2; i++) 08    { 09        for (j = 0; j < 3; j++) 10            { 11                    printf("a[%d][%d] = %d\n", i, j, a[i][j]); 12            } 13    }  return 0; 15 } 표준입력 스트림

8 【예제 7-4】Ex4.c 02 2차원 배열 예제 01 #include <stdio.h>
02 int main(void) 03 {   int i, j, sum=0; 05    int a[2][2] = { 5, 20, 12, 7 }; 06   07    for (i = 0; i < 2; i++) 08    { 09        for (j = 0; j < 2; j++) 10            { 11                   sum += a[i][j]; 12           } 13    }   printf("이차원 배열 a의 합은 %d 이다.\n", sum);   return 0; 16 } 표준입력 스트림

9 【예제 7-5】Ex5.c 02 2차원 배열 예제 01 #include <stdio.h>
02      int main(void) 03     { 04         int i, j, sum=0; 05         int a[ ][3] = { {90, 80, 90},     // 영희의 국어 영어 수학 점수 06                         {70, 100, 100},  // 철수의 국어 영어 수학 점수 07                         {80, 90, 90}};   // 미나의 국어 영어 수학 점수 08            double average[3]; 09        for (i = 0; i < 3; i++) { 10             for (j = 0; j < 3; j++) {                  sum += a[i][j]; 12            } 13                   average[i] = (double) sum / j; 14             printf("%d번 학생의 과목 평균은 %.2lf 이다. \n", i+1, average[i]); 16                   sum = 0;  17          } 18          return 0; 19      }

10 【예제 7-6】Ex6.c 02 2차원 배열 예제 01 #include <stdio.h>
02      int main(void) 03     { 04         int i, j, sum=0; 05         int a[ ][3] = { {90, 80, 90},     // 영희의 국어 영어 수학 점수                          {70, 100, 100},  // 철수의 국어 영어 수학 점수 07                         {80, 90, 90}};   // 미나의 국어 영어 수학 점수 08         double aveClass[3]; 09         for (j = 0; j < 3; j++){           for (i = 0; i < 3; i++){                  sum += a[i][j]; 12           }           aveClass[j] = (double)sum / i; 14                     if(j == 0)  printf("국어의 평균은 %.2lf 이다.\n", aveClass[j]); 15           else if(j == 1)  printf("영어의 평균은 %.2lf 이다.\n", aveClass[j]); 16           else if(j == 2)  printf("수학의 평균은 %.2lf 이다.\n", aveClass[j]); 17                     sum = 0;  18        } 19         return 0; 20     }

11 【예제 7-7】Ex7.c 02 3차원 배열 예제 02 int main(void) 03 {
01 #include <stdio.h>   02    int main(void) 03   { 04        int x[2][2][5] = {0,1,2,3,4, 05                          5,6,7,8,9, 06                          10,11,12,13,14, 07                          15,16,17,18,19}; 08        int i, j, k; 09         10        for (i = 0; i < 2; i++) 11          for (j = 0; j < 2; j++) 12            for (k = 0; k < 5; k++) 13               printf("x[%d][%d][%d] = %d\n", i, j, k, x[i][j][k]); 14         15       return 0; 16   }

12 【예제 7-8】Ex8.c 02 문자 배열 예제 01 #include <stdio.h>
02 int main(void) 03 {   int i, j; 05    char str[4] = { 'A', 'B', 'C', '\0'}; 06    char student[ ] = "John"; 07   08    printf("문자열을 동시에 출력하는 경우\n"); 09    printf("학생의 이름은 %s 이다.\n\n", student); 10    printf("문자열을 한자씩 출력하는 경우 \n"); 11   12    for(i=0; str[i] != '\0'; i++) 13       printf("%c\n", str[i]); 14        return 0; 15 } 표준입력 스트림

13 변수 접근 방법 04 변수 접근 방법 메모리에 선언한 변수에 접근하는 방법에는 두 가지가 있다. 변수명으로 접근하는 방법
변수의 주소를 이용해서 접근하는 방법 배열에서는 배열의 원소의 주소에 접근하는 방법으로 배열명을 이용한다. 배열명은 배열의 시작주소를 나타내는 상수이다.

14 【예제 7-9】Ex9.c 02 주소를 사용하는 예제 01 #include <stdio.h>
02 int main(void) 03 { 04    int a; 05    printf(" 하나의 정수 값을 입력하시오\n"); 06    scanf("%d", &a); 07   printf(" 입력받은 정수의 값은 %d 이다.\n", a); 09    printf(" 입력받은 정수의 주소는 %p 이다.\n", &a); 10   return 0; 12} 표준입력 스트림

15 【예제 7-10】Ex10.c 02 배열과 주소 예제 01 #include <stdio.h>
02     int main(void) 03     { 04         int a[4] = {10, 20, 30, 40}; 05         int i, aryLength; 06         aryLength = sizeof(a) / sizeof(int); 07         printf("배열의 원소값을 출력하면 \n"); 08         for(i = 0; i < aryLength ; i++){ 09                 printf("a[%d] = %d \n", i, a[i]); 10         } 11         printf("배열 원소의 주소를 출력하면 \n"); 12         for(i = 0; i < aryLength ; i++){ 13                 printf("&a[%d] = %p \n", i, &a[i]); 14         } 15        return 0; 16     } 표준입력 스트림

16 배열과 주소 05 배열과 주소

17 【예제 7-11】Ex11.c 02 배열과 주소 예제 01 #include <stdio.h>
02     int main(void) 03     { 04         double b[] = { 2.3, 3.0, 4.1, 5.5}; 05         int a[4] = {10, 20, 30, 40}; 06         int i, aryLenDouble, aryLenInt; 07        aryLenDouble = sizeof(b) / sizeof(double); 08         aryLenInt = sizeof(a) / sizeof(int); 09            printf("double형 배열 원소의 주소를 출력하면 \n"); 10          for(i = 0; i < aryLenDouble; i++){ 11                 printf("b+%d = %p \n", i, b+i); 12         } 13         printf("int형 배열 원소의 주소를 출력하면 \n"); 14          for(i = 0; i < aryLenDouble; i++){ 15                 printf("a+%d = %p \n", i, a+i); 16         } 17         return 0; 18      }


Download ppt "7장 배열 배열의 정의 배열의 초기화 1차원 배열 2차원 및 다차원 배열 문자 배열 배열과 구조."

Similar presentations


Ads by Google