Download presentation
Presentation is loading. Please wait.
1
어서와 C언어는 처음이지 제21장
2
배열 배열(array)은 같은 유형의 요소(element)들로 이루어진다. int i; /* 일반 변수를 정의한다. */
3
배열의 초기화 초기값들을 중괄호로 감싸서 배열 이름 다음에 등호와 같이 붙이는 것
int vals[5] = { 10, 40, 70, 90, 120 };
4
배열의 초기화 예 float money[10] = { 6.23, 2.45, 8.01, 2.97, 6.41 };
double annualSal[6] = { , , , , }; char grades[5] = { 'A', 'B', 'C', 'D', 'F' }; NULL 문자가 끝에 없기 때문에 grades는 문자 배열이지만 문자열은 아니다. char italCity[7] = { 'V', 'e', 'r', 'o', 'n', 'a', '\0' };
5
배열의 초기화 배열의 모든 요소를 0으로 만들려고 한다면 다음처럼 하면 된다.
float amount[100] = { 0.0 }; /* 모든 배열 요소가 0이 된다. */
6
배열 안에 값 저장하기 정수 배열의 경우 int ages[3]; for (i = 0; i < 3; i++) {
printf("#%d번째 자식의 나이는? ", i + 1); scanf(" %d", &ages[i]); // 사용자로부터 나이를 입력받는다. }
7
예제: 농구 게임 이 프로그램은 10번의 농구 게임에서 특정한 선수가 얼마나 많은 점수를 득점했는지를 추적한다.
/* 이 프로그램은 10게임에서의 농구선수 점수를 저장하기 위한 배열을 생성한다. 처음 6개의 게임의 점수는 프로그램에서 입력된다. 나머지 4개에서의 게임 점수는 사용자에 의하여 입력된다. */ 경기 7에서 선수의 득점은? 8 경기 8에서 선수의 득점은? 11 경기 9에서 선수의 득점은? 14 경기 10에서 선수의 득점은? 21 선수의 평균 득점은 14.9
8
// 완전 초보자 가이드 3판 21장 예제 #1 #include <stdio.h> main() { int gameScores[10] = { 12, 5, 21, 15, 32, 10 }; int totalPoints = 0; int i; float avg; // 나머지 4개의 게임에서의 점수만 입력받으면 된다. // 따라서 반복 루프가 배열 요소 6-9만을 처리한다. for (i = 6; i < 10; i++) // 배열 첨자에 1을 더한다. // 따라서 사용자는 첫 번째 게임을 게임 0이 아닌 게임 1로 // 생각할 수 있다. printf("게임 %d에서 선수의 득점은? ", i + 1); scanf(" %d", &gameScores[i]); }
9
// 이제 모든 10개의 경기에 대한 점수가 있으므로
// 평균을 계산하기 위하여 점수를 전부 더한다. for (i = 0; i<10; i++) { totalPoints += gameScores[i]; } // 부동 소수점 변수를 사용한다. // 평균은 실수로 계산될 것이다. avg = ((float)totalPoints / 10); printf("\n\n선수의 평균 득점은 %.1f.\n", avg); return(0);
10
Lab: 평균 계산 사용자에게 10개의 정수값을 받아서 배열에 저장한다. 배열에 저장된 값들의 합계와 평균을 계산하여 출력한다. 정수값을 입력하시오: 10 정수값을 입력하시오: 20 정수값을 입력하시오: 30 정수값을 입력하시오: 40 정수값을 입력하시오: 50 정수값을 입력하시오: 60 정수값을 입력하시오: 70 정수값을 입력하시오: 80 정수값을 입력하시오: 90 정수값을 입력하시오: 100 합계는 550입니다. 평균은 55입니다.
11
#include <stdio.h>
#define SIZE 10 int main(void) { int values[SIZE]; int i, sum; for (i = 0; i < SIZE; i++){ printf("정수값을 입력하시오: "); scanf("%d", &values[i]); } sum = 0; for (i = 0; i < SIZE; i++) sum += values[i]; printf("합계는 %d입니다. \n", sum); printf("평균은 %d입니다. \n", sum / SIZE); return 0;
12
학습 정리 동일한 자료형의 리스트를 생성할 때 배열을 사용하자. 배열 요소는 첨자로 참조한다.
각 배열 요소를 하나씩 처리하기 위해서는 for 루프를 사용하자. 배열 요소를 초기화하든지, 출력하든지, 변경할 수 있다. 배열 안에서는 정의된 크기보다 더 많은 요소를 사용하면 안 된다. 배열을 어떤 값으로 초기화시키기 전까지는 배열을 사용하면 안 된다.
13
Q & A
14
Lab: 앞의 배열 거꾸로 바꾸기 배열에 저장된 값들을 거꾸로 출력한다. 또한, 배열의 값들을 거꾸로 저장한다.
정수값을 입력하시오: 10 정수값을 입력하시오: 20 정수값을 입력하시오: 30 정수값을 입력하시오: 40 정수값을 입력하시오: 50 정수값을 입력하시오: 60 정수값을 입력하시오: 70 정수값을 입력하시오: 80 정수값을 입력하시오: 90 정수값을 입력하시오: 100 합계는 550입니다. 평균은 55입니다.
Similar presentations