Chapter 09. 배열.

Slides:



Advertisements
Similar presentations
2007 1학기 12 배열.
Advertisements

데이터의 표현과 연산 (1) (Chapter 3)
슬라이드 1~21까지는 각자 복습! 슬라이드 22부터는 수업시간에 복습
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
C 프로그래밍.
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
C 11장. 포인터의 활용 #include <stdio.h> int main(void) { int num;
제5장 제어명령
C언어: 배열 (Arrays).
컴퓨터의 기초 제 4강 - 표준 입출력, 함수의 기초 2006년 4월 10일.
6장. printf와 scanf 함수에 대한 고찰
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
Chapter 13 문자 데이터와 문자열 문자 데이터 문자열.
7. while 문의 흐름 제어.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
C 7장. 배열과 문자열 #include <stdio.h> int main(void) { int num;
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
7장 배열 배열의 정의 배열의 초기화 1차원 배열 2차원 및 다차원 배열 문자 배열 배열과 구조.
10장 포인터와 문자열 포인터 기본 배열과 포인터 매개변수 전달방법 포인터와 문자열.
표준 출력 함수 printf 출력 데이터 서식화(formatting) 표준 입력 함수 scanf 입력 데이터 서식화
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Chapter 06. 선택문.
Chapter 10. 포인터.
Part 04 입출력과 전처리 ©우균, 창병모 이 슬라이드는 부산대학교 우균이 작성하였습니다. 오류나 수정할 사항 있으면 연락 주세요.
6장 배열.
Chapter 4. 보조자료 - 파일 입출력 파일의 기본 개념과 특징을 이해한다. 파일 처리 과정을 이해한다.
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
4장 제어문 선택문: if 문, if – else 문, switch 문
13. 포인터와 배열! 함께 이해하기.
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
개정판 누구나 즐기는 C언어 콘서트 제6장 반복문 출처: pixabay.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 11. 1차원 배열.
11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
제어문 & 반복문 C스터디 2주차.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 프로그램 제2,3장 간단한 C 프로그램 김 문 기.
게임프로그래밍 I - 1차원 배열 - 공주대학교 게임디자인학과 박 찬 교수 2011년 4월 25일.
Chapter 11. 배열과 포인터.
Chapter 05. 입출력 함수.
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
#1 배열 활용 #include int main(void) { int i; int grade[5]; grade[0] = 10; grade[1] = 20; grade[2] = 30; grade[3] = 40; grade[4] = 50; for(i=0;i.
-Part2- 제1장 1차원 배열이란 무엇인가.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
-Part1- 제7장 반복문이란 무엇인가.
C언어 (8) 정명희.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express Slide 1 (of 25)
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
컴퓨터 프로그램은 여러 기능의 복합체이다. 라이브러리 함수와 사용자 정의 함수
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
-Part2- 제2장 다차원 배열이란 무엇인가.
실습과제 1번 생성된 파일 basic.txt를 프로젝트 폴더에서 메모장으로 열고 내용을 확인
어서와 C언어는 처음이지 제16장.
개정판 누구나 즐기는 C언어 콘서트 제10장 문자열 출처: pixabay.
C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num;
어서와 C언어는 처음이지 제23장.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
C.
printf("Global Korea\n");
C 프로그래밍은 매우 도전적인 작업이다. 도전의 이면에 철저한 준비와 체계적인 노력
개정판 누구나 즐기는 C언어 콘서트 제3장 변수와 자료형 출처: pixabay.
어서와 C언어는 처음이지 제22장.
배열, 포인터, 함수 Review & 과제 1, 2.
배열.
11장. 1차원 배열.
Presentation transcript:

chapter 09. 배열

배열의 선언과 사용 같은 형태의 자료형이 많이 필요할 때 배열을 사용하면 효과적이다. 배열의 선언 배열의 사용 배열과 반복문 배열의 초기화 유연성 있게 배열 다루기

▶ 배열의 선언 배열은 배열명과 변수의 개수, 변수의 자료형으로 선언한다. 배열을 선언하면 변수의 개수만큼 연속된 기억공간을 할당한다.

▶ 배열의 사용 배열의 기억공간을 사용할 때는 각 기억공간이 배열에서 차지하는 위치를 사용한다. 배열을 구성하는 기억공간들을 배열의 요소(element)라고 하며 각 요소가 배열에서 차지하는 위치를 첨자(index)라고 한다. 배열의 첨자는 0부터 시작한다.

ages배열의 세 번째 배열요소에 데이터를 저장하고 출력할 때 ▶ 배열의 사용 ages배열의 세 번째 배열요소에 데이터를 저장하고 출력할 때 int ages[5]; ages[2] = 20; printf(“세 번째 배열요소에 저장된 값은 : %d\n”, ages[2]); // 배열의 선언, 배열요소의 개수는 5개 // 세 번째 배열요소에 20을 저장 // 저장된 값을 출력 배열요소에 값을 입력 받을 때도 일반 변수와 같이 사용한다. 첨자는 0부터 시작하므로 배열요소의 개수가 5개이면 5를 첨자로 사용할 수 없다.

배열요소는 첨자로 구분되므로 반복문을 사용하면 모든 배열요소를 간단하게 참조할 수 있다. ▶ 배열과 반복문 배열요소는 첨자로 구분되므로 반복문을 사용하면 모든 배열요소를 간단하게 참조할 수 있다. - ages배열의 모든 요소에 값을 입력 받는 경우 i 제어변수를 배열요소의 첨자로 사용한다.

▶ 배열을 사용하여 평균 나이를 계산하는 프로그램 #include <stdio.h> int main() { int ages[5]; int tot=0; double avg; int i; printf("다섯 명의 나이를 입력하세요 : "); for(i=0; i<5; i++){ scanf("%d", &ages[i]); } tot+=ages[i]; avg = tot / 5.0; printf("입력된 다섯 명의 나이 : "); printf("%d ", ages[i]); printf("\n다섯 명의 평균 나이는 %.1lf입니다.\n", avg); return 0; // 다섯 명의 나이를 저장할 배열 // 총합을 저장할 변수, 미리 0으로 초기화한다. // 평균나이를 저장할 변수 // 반복 제어변수 // i가 0부터 4까지 변하면서 다섯 번 반복한다. // 각 배열요소에 나이 입력 // 모든 배열요소의 값을 누적시킨다. // 평균 나이 계산 // 각 배열요소의 값을 출력 // 평균 나이 출력

▶ 배열의 초기화 배열을 선언하면 처음에 쓰레기값이 존재한다. int nums[5]; int i, tot=0; for(i=0; i<5; i++){ tot+=nums[i]; } printf(“total : %d\n”, tot); // 쓰레기값의 합이 출력된다. 배열은 기억공간의 수가 많으므로 중괄호를 사용하여 초기값을 나열한다.

배열요소의 수보다 초기화 값이 적으면 남는 기억공간은 0으로 채워진다. ▶ 배열의 초기화의 자동기능 배열요소의 수보다 초기화 값이 적으면 남는 기억공간은 0으로 채워진다. int nums[5] = {1, 3}; 배열을 선언할 때 초기화하면 배열요소의 개수를 생략할 수 있다.

▶ 유연성 있게 배열 다루기 배열요소의 개수가 자동으로 계산되도록 프로그램을 작성하면 배열의 크기가 바뀌어도 프로그램을 수정할 필요가 없다. 배열요소의 개수를 계산하여 배열의 합을 계산하는 예 int nums[]={1,2,3,4,5}; int tot=0, i; int size; size=sizeof(nums)/sizeof(nums[0]); for(i=0; i<size; i++){ tot+=nums[i]; } // 배열의 초기화 // 누적변수와 반복제어변수 // 배열요소의 개수를 저장할 변수 // 배열요소의 개수 계산 // 계산한 배열요소의 개수를 반복문에 사용한다.

문자열을 저장하는 문자배열 문자배열은 문자열을 저장하는 하나의 변수와 같은 역할을 한다. 문자배열의 선언과 사용 문자열은 널문자가 완성한다! scanf함수를 사용한 문자열의 입력 문자배열의 초기화

문자배열은 기본적으로 여러 개의 문자를 저장하기 위한 char형 배열이다. ▶ 문자배열의 선언과 사용 문자배열은 기본적으로 여러 개의 문자를 저장하기 위한 char형 배열이다. - 4개의 문자를 저장할 수 있는 문자배열의 선언 배열요소에 문자를 저장하면 문자열이 만들어진다.

문자배열의 마지막에 널문자(‘\0’)가 없으면 저장된 문자열의 끝을 알 수 없다. ▶ 문자열은 널문자가 완성한다! 문자배열의 마지막에 널문자(‘\0’)가 없으면 저장된 문자열의 끝을 알 수 없다. - printf함수로 출력하는 경우 쓰레기 값이 출력된다. char word[50]; word[0]=‘L’; word[1]=‘o’; word[2]=‘v’; word[3]=‘e’; printf(“%s”, word); // 넉넉한 배열 선언 // 문자를 하나씩 입력하여 문자열 완성 // 문자열 출력 Love儆 儆 儆 儆 儆 儆 儆 儆 儆 儆 儆 儆 儆 儆 儆 儆 儆

문자배열에 문자열을 저장할 때는 항상 마지막에 끝을 표시하는 널문자(‘\0’)를 넣어줘야 한다. ▶ 문자열은 널문자가 완성한다! 문자배열에 문자열을 저장할 때는 항상 마지막에 끝을 표시하는 널문자(‘\0’)를 넣어줘야 한다. char word[50]; word[0]=‘L’; word[1]=‘o’; word[2]=‘v’; word[3]=‘e’; word[4]=‘\0’; printf(“%s”, word); // 문자열의 끝을 널문자로 표시해 준다. Love

문자배열에 문자열을 입력 받을 때는 %s변환문자열과 배열명을 scanf함수의 전달인자로 준다. - word배열에 vitamin을 입력 받은 경우 printf(“문자열을 입력하세요 : ”); scanf(“%s”, word); 문자열을 입력하세요 : vitamin (엔터)

배열의 크기보다 입력되는 문자열의 크기가 더 크면 할당되지 않은 기억공간을 침범하므로 주의해야 한다. ▶ scanf함수로 문자열을 입력할 때 주의할 점 배열의 크기보다 입력되는 문자열의 크기가 더 크면 할당되지 않은 기억공간을 침범하므로 주의해야 한다. char word[5]; // 이곳에 “vitamin”을 입력 받는다면…

- char형 배열요소에 0이 저장되면 널문자가 되므로 결국 남는 ▶ 문자배열의 초기화 문자배열은 기본적으로 문자상수들로 초기화 한다. char str[10] = {‘d’, ‘r’, ‘e’, a’, ‘m’, ‘\0’}; 초기화하고 남는 배열요소는 0으로 채워진다. - char형 배열요소에 0이 저장되면 널문자가 되므로 결국 남는 배열요소는 널문자로 채워지는 것이다. 문자배열은 문자열상수로 직접 초기화가 가능하다. 단, 선언과 동시에 초기화하는 경우만 가능하다. char str[80] = “dream”; str = “utopia”; // 배열 선언과 동시에 초기화 ( ○ ) // 배열에 문자열을 바로 대입할 수 없다. ( × )