◾ 배열
배열이란 같은 형태의 많은 데이터를 반복문으로 처리하기 위해서 메모리에 연속적으로 저장해 놓고 쪼개서 사용하는 방법을 말한다.
int 5개를 만들고 싶어 >> int ary[5] = { };
배열의 이름을 ary로 하며 int 자료형 5묶음을 만들고 { } 사용해서 전체를 0으로 초기화 하겠다.
-> 배열은 항상 조심히 써야 한다. 나는 [5]으로 정해놨는데 [6]으로 잘못 적었을 시 다른 사람이 적어둔 배열을 불러올 수 있다.
#include <stdio.h>
int main()
{
int ary[5] = {};
ary[0] = 10;
ary[1] = 20;
ary[2] = ary[0] + ary[1];
scanf_s("%d", &ary[3]); // 키보드로 입력받은 값이므로 ary 앞에 &를 붙입니다.
printf("%d \n", ary[2]);
printf("%d \n", ary[3]);
printf("%d \n", ary[4]); // 마지막 배열은 정하지 않으면 쓰레기 값
return 0;
}
→ 변수는 각각의 공간에 이름을 지정하지만, 배열은 메모리에 연속된 공간이 할당되며 하나의 이름으로 사용된다.
📙 배열과 반복문을 이용한 성적표 만들기
#include <stdio.h>
int main()
{
int score[5]; // 다섯 과목의 성적을 입력할 int형 배열 선언
int total = 0; // 총점을 누적할 변수
double avg; // 평균을 저장할 변수
// 각 배열에 성적 입력
for (int i = 0; i < 5; ++i)
{
scanf_s("%d", &score[i]);
}
// 성적을 누적해 총점 계산
for (int i = 0; i < 5; ++i)
{
total += score[i];
}
avg = total / 5.0; // 평균 계산
// 성적 출력
for (int i = 0; i < 5; ++i)
{
printf("%5d", score[i]);
}
printf("\n");
printf("평균 : %.1lf\n", avg); // .1lf .2lf .3lf : 소수점 자리
return 0;
}
📃 sizeof 연산자를 활용한 배열 처리 방법
#include <stdio.h>
int main()
{
int score[5]; // 과목 수가 변경될 경우 이것만 바꾸면 된다.
int total = 0;
double avg;
int count; // 배열 요소의 개수를 저장할 변수
// 배열의 전체 크기를 구할 때 sizeof를 사용한다.
count = sizeof(score) / sizeof(score[0]); // 배열 요소의 개수 계산
// 각 배열에 성적 입력
for (int i = 0; i < count; ++i)
{
scanf_s("%d", &score[i]);
}
// 성적을 누적해 총점 계산
for (int i = 0; i < count; ++i)
{
total += score[i];
}
avg = total / count; // 평균 계산
// 성적 출력
for (int i = 0; i < count; ++i)
{
printf("%5d", score[i]);
}
printf("\n");
printf("평균 : %.1lf\n", avg); // .1lf .2lf .3lf : 소수점 자리
return 0;
}
-> 이렇게 사용하면 나중에 요소의 개수를 바꾸더라도 나머지 코드를 수정할 필요가 없다.