본문 바로가기
프로그래밍/C

배열

by leestun 2020. 7. 25.
반응형

[배열]

같은 자료형을 가진 여러개의 변수들의 나열된 묶음

특징
- 같은 자료형이다
- 크기가 고정이다
- 순서가 있다.

사용목적
공통된 특징을 갖고 있는 변수를 변수명으로 따로 관리하는 것이 아니라 묶음(배열)으로 묶어서 편하게 번호로 관리 할 수 있다.

[ ]:첨자

배열 생성방법
자료형 배열명[크기];
ex)정수형의 변수 3개를 ar이라는 이름의 배열로 묶어서 관리한다.

int ar[3];

<실습> 배열.c

//step1
3명의 학생의 점수를 저장하는
정수형 변수 3개를 만들기

#include <stdio.h>

int main() {
/*int student1_score = 100;
int student2_score = 20;
int student3_score = 60*/;

//int student_score[3] = { 100,20,60 };
int student_score[3];
student_score[0] = 100;
student_score[1] = 20;
student_score[2] = 60;


printf("학생 1번의 점수:%d점\n", student_score[0]);
printf("학생 2번의 점수:%d점\n", student_score[1]);
printf("학생 3번의 점수:%d점\n", student_score[2]);


return 0;
}
—————————————————————
배열을 구성하는 변수들을 앞으로 요소라고 하자

1) 배열을 생성하자마자 값을 저장하는 방법
자료형 배열명[크기] = 값; -> 초기화
2) 배열을 생성한 이후에 요소에 값을 저장하는 방법
배열명[위치] = 값;

*배열 안에 있는 요소에 저장된 값들은 어떻게 출력, 연산을 할 수 있을까?
배열명[번호]

*시작위치는 0번으로 시작한다 -> 포인터
*배열의 마지막 번호는 크기 -1번이다
*배열은 생성한 이후에는 묶음으로 값을 넣을 수 없다.
*배열의 모든 값 0으로 초기화
int 배열[5] = {0};

—————————————————————————————————

<실습> 학생점수.c
5명의 학생 점수를 입력받아, scores라는 배열에 저장하고
배열에 저장된 모든 값을 다음과 같은 형식으로 출력하시오

#include <stdio.h>

int main() {

int scores[5];
for (int i = 0; i < 5; i++) {
printf("%d번 학생 점수:", i + 1);
scanf("%d", &scores[i]);
}
for (int i = 0; i < 5; i++) {
printf("%d번 학생 점수:%d점\n",i+1,scores[i]);
}


return 0;
}

<출력결과>
1번 학생 점수: 50 점
2번 학생 점수: 60 점
3번 학생 점수: 80 점
4번 학생 점수: 100 점
5번 학생 점수: 40 점

*배열은 반복문과 함께 자주 사용한다.
------------------------------------------------
*학생점수의 평균 구하기
평균을 구하는 방법
1) 전체 점수의 합계 구해라
2) 합계/전체 개수

#include <stdio.h>

int main() {

int scores[5];
int sum = 0;
double avg;

for (int i = 0; i < 5; i++) {
printf("%d번 학생 점수:", i + 1);
scanf("%d", &scores[i]);
}
for (int i = 0; i < 5; i++) {
sum += scores[i];
}
avg = sum / (double)5;
printf("학생의 평균 점수는:%.1f", avg);

return 0;
}

<출력결과>
1번 학생 점수: 50 점
2번 학생 점수: 60 점
3번 학생 점수: 80 점
4번 학생 점수: 100 점
5번 학생 점수: 40 점
학생의 평균 점수는:66.0 점
——————————————————————————————————-
<실습> 짝수배열.c
사용자에게 10개의 숫자를 입력받아
num 배열에 저장하고
입력받은 숫자가 짝수 일때만 출력하는 프로그램

#include <stdio.h>

int main() {
int num[5];

for (int i = 0; i < 5; i++) {
printf("숫자를 입력하세요:");
scanf("%d", &num[i]);
}
for (int i = 0; i < 5; i++) {
if (num[i] % 2 == 0) {
printf("짝수인 수:%d\n", num[i]);
}
}

return 0;
}
---------------------------------------------------------------------

[문자열]

생성방법
1)char 배열명[] = {문자값1, 문자값2..}
2)char 배열명[] = “문자열값”;

sizeof(자료형 혹은 값)
printf(“%s”,문자열)

‘\0’:NULL문자
문자열에서 ‘\0’을 만날때까지 문자들을 출력

<실습> 문자열.c
#include <stdio.h>

int main() {
char name1[] = “Mike”;
char name2[] = {‘M’,’i’,’k’,’e’,’\0’};
int num[] = {1,2,3,4};

//1)전체 byte크기 출력
printf(“name1:%d\n”,sizeof(name1));
printf(“name2:%d\n”,sizeof(name2));

//2) printf(%s”,문자열)
printf(“name1:%s\n”, name1);
printf(“name2:%s\n”,name2);

return0;
}
————————————————————
<실습>최댓값.c

#include <stdio.h>

int main() {
int num[5] = {0};
int max;
for (int i = 0; i < 5; i++) {
printf("숫자입력: ");
scanf("%d", &num[i]);
}
max = num[0];
for (int i = 1; i < 5; i++) {
if (max < num[i]) {
max = num[i];
}
}
printf("최댓값:%d\n", max);

return 0;
}


사용자에게 5개의 숫자를 입력받아 배열에 저장하고, 최댓값을 출력하는 코드 구현
----------------------------------------------------------

반응형

'프로그래밍 > C' 카테고리의 다른 글

배열- 3차원배열  (0) 2020.07.29
배열 - 다차원 배열  (0) 2020.07.27
변수의종류  (0) 2020.07.24
재귀함수  (0) 2020.07.24
함수  (0) 2020.07.22