Presentation is loading. Please wait.

Presentation is loading. Please wait.

11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.

Similar presentations


Presentation on theme: "11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수."— Presentation transcript:

1 11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수

2 이상한 요구사항 5개의 정수를 받아서 역순으로 출력하는 프로그램 을 작성하라. 실행 예 점진적 세분화
입력: 출력: 점진적 세분화 5개의 정수를 읽어 x0, x1, x2, x3, x4에 저장한다. (scanf를 이용하여 바로 구현 가능) x4, x3, x2, x1, x0 순으로 출력한다. (printf를 이용하여 바로 구현 가능)

3 scanf와 printf 패턴이 중복 되는 것이 마음에 불편하지요?
마음에 듭니까? scanf와 printf 패턴이 중복 되는 것이 마음에 불편하지요? "배열"을 이용하면 이 중복을 제 거할 수 있습니다. scanf 중복 printf 중복 실행결과: 다섯 개의 정수를 입력해 주세요. 입력된 정수를 역순으로 출력하면 다음과 같습니다.

4 배열 소개 배열이란? 배열 원소 참조 배열 예 같은 자료형의 자료 여러 개를 하나로 묶은 것 또는 이런 자료를 나타내는 자료형
첨자 연산자(index operator) []를 이용하여 참조한다. C 배열의 첨자는 항상 0부터 시작한다. 배열 예 다섯 개의 원소로 이루어진 배열 x

5 revPrint2.c 실행결과: 다섯 개의 정수를 입력해 주세요. 19 10 8 29 36
크기 5인 int 배열 x 첨자연산자 []가 주소연산자 &보다 높은 우선순위임. 따라서 &(x[i])와 같은 뜻임 실행결과: 다섯 개의 정수를 입력해 주세요. 입력된 정수를 역순으로 출력하면 다음과 같습니다.

6 11-1 배열이란 무엇인가? 둘 이상의 변수를 동시에 선언하는 효과를 지닌다. 많은 양의 데이터를 일괄적으로 처리해야 하는 경 우에 유용하다. 지역적 특성을 지닐 수도 있고, 전역적 특성을 지 닐 수도 있다.

7 11-2 1차원 배열의 선언 및 초기화 배열 선언에 있어서 필요한 것 세 가지
차원 배열의 선언 및 초기화 배열 선언에 있어서 필요한 것 세 가지 배열 길이 : 배열을 구성하는 변수의 개수 (반드시 상수를 사용) 배열 요소 자료형 : 배열을 구성하는 변수의 자료형 배열 이름 : 배열에 접근할 때 사용되는 이름 그림 11-1

8 11-2 1차원 배열의 선언 및 초기화 1차원 배열의 접근 배열 요소의 위치를 표현 : 인덱스(index)
차원 배열의 선언 및 초기화 1차원 배열의 접근 배열 요소의 위치를 표현 : 인덱스(index) 인덱스는 0에서부터 시작 그림 11-2

9 11-2 1차원 배열의 선언 및 초기화 배열 선언과 접근의 예(array1.c 참조) 그림 11-3 int main(void)
차원 배열의 선언 및 초기화 배열 선언과 접근의 예(array1.c 참조) int main(void) { int array[10]; // 배열 선언 array[0]=10; // 첫 번째 요소 접근 array[1]=20; // 두 번째 요소 접근 array[2]=30; // 세 번째 요소 접근 return 0; } 그림 11-3

10 11-2 1차원 배열의 선언 및 초기화 /* array1.c */ #include <stdio.h>
차원 배열의 선언 및 초기화 /* array1.c */ #include <stdio.h> int main(void) { double total; double val[5]; val[0]=1.01; val[1]=2.02; val[2]=3.03; val[3]=4.04; val[4]=5.05; total=val[0]+val[1]+val[2]+val[3]+val[4]; printf("평균 : %lf \n", total/5); return 0; }

11 11-2 1차원 배열의 선언 및 초기화 선언과 동시에 초기화(array2.c 참조) 그림 11-4 int main(void)
차원 배열의 선언 및 초기화 선언과 동시에 초기화(array2.c 참조) int main(void) { int arr1[5]={1, 2, 3, 4, 5}; int arr2[ ]={1, 3, 5, 7, 9}; int arr3[5]={1, 2} } 그림 11-4

12 차원 배열의 선언 및 초기화 그림 11-5 그림 11-6

13 11-3 배열 기반 문자열 변수 문자열 상수 문자열 변수(ar_str.c 참조) 문자열이면서 상수의 특징을 지닌다.
11-3 배열 기반 문자열 변수 문자열 상수 문자열이면서 상수의 특징을 지닌다. 문자열 변수(ar_str.c 참조) 문자열이면서 변수의 특징을 지닌다. printf("Hello World! \n"); char str1[5]="Good"; char str2[]="morning";

14 /* ar_str.c */ #include <stdio.h> int main(void) { char str1[5]="Good"; char str2[]="morning"; printf("%s \n", str1); printf("%s %s \n ", str1, str2); return 0; }

15 11-3 배열 기반 문자열 변수 문자열의 특징 문자열은 널(null)문자를 끝에 지닌다.
11-3 배열 기반 문자열 변수 문자열의 특징 문자열은 널(null)문자를 끝에 지닌다. 널(null) 문자 : '\0'(아스키 코드 값으로 0) int main(void) { char str[6]="Hello"; printf("Hello"); 그림 11-7

16 11-3 배열 기반 문자열 변수 널(null) 문자를 지녀야 하는 이유 문자열의 끝을 표현하기 위해서
11-3 배열 기반 문자열 변수 널(null) 문자를 지녀야 하는 이유 문자열의 끝을 표현하기 위해서 쓰레기 값과 실제 문자열의 경계를 나타내기 위해 printf 함수는 널 문자를 통해서 출력의 범위를 결정 짓는다. int main(void) { char str[100]=”Hello World!”; printf(“%s \n”, str);

17 11-3 배열 기반 문자열 변수 문자열 변수를 활용한 다양한 예제 문자열과 char형 배열의 차이점
11-3 배열 기반 문자열 변수 문자열 변수를 활용한 다양한 예제 va_str.c : 문자열 변수의 데이터 조작 scanf_str.c : 문자열 변수를 통한 문자열의 입력 문자열과 char형 배열의 차이점 char arr1[ ] = "abc"; char arr2[ ] = {'a', 'b', 'c'}; char arr3[ ] = {'a', 'b', 'c', '\0'};

18 11-3 배열 기반 문자열 변수 /* va_str.c */ #include <stdio.h>
11-3 배열 기반 문자열 변수 /* va_str.c */ #include <stdio.h> int main(void) { int i; char ch; char str[6]="Hello"; printf("--변경 전 문자열--\n"); printf("%s \n", str); for(i=0; i<6; i++) printf("%c | ", str[i]); /* 문자열 변경 */ for(i=0; i<3; i++) ch=str[4-i]; str[4-i]=str[i]; str[i]=ch; } printf("\n\n--변경 후 문자열--\n"); return 0;


Download ppt "11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수."

Similar presentations


Ads by Google