하나의 식별자로 같은 타입의 여러 데이터를 다룰 수 있다.
생성되는 공간의 크기는 같아야하고, 공간 안의 값의 크기는 달라질 수 있다.
<자료형> <배열명> [<크기>]
5개의 정수 중에서 최대값과 최소값의 위치를 출력
#include <stdio.h>
#include <limits.h>
#defind NUM 5 // 배열의 크기를 상수로 지정해서 사용하는 경우 多
// main 함수
int main()
{
int i, max, min, idx;
max = 0;
idx = 0;
int arr[NUM];
// arr[0] ~ arr[4] : 총 5개의 아이템이 들어갈 수 있는 크기의 배열 선언
for(i=0; i<NUM; i++)
{
scanf("%d", &arr[i]);
if(max < arr[i]) //현재의 최대값보다 i번째 아이템이 더 크다면
{
max = arr[i]; // max에 해당 값을 넣어준다
idx = i; // idx의 값으로 해당위치를 넣어준다
}
}
printf("최대값은 %d입니다. 그리고 %d번째에 있습니다.\n", max, idx + 1);
// 최소값 초기화
min = INT_MAX; // int형이 가질 수 있는 가장 큰 값
for(i=0; i<NUM; i++)
{
scanf("%d", &arr[i]);
if(min > arr[i])
{
min = arr[i];
idx = i;
}
}
printf("최소값은 %d입니다. 그리고 %d번째에 있습니다.\n", min, idx + 1);
return 0;
}
5개의 정수 중에서 짝수 최대값과 홀수 최대값을 출력
#include <stdio.h>
#define NUM 5
int main()
{
int arr[NUM];
int i, oddMax, evenMax;
oddMax = 0;
evenMax = 0;
for(i=0; i<NUM; i++)
{
scanf("%d", &arr[i]);
if(arrr[i] % 2 == 0)
{
if(evenMax < arr[i]) {
evenMax = arr[i];
}
}
else
{
if(oddMax < arr[i]) {
oddMax = arr[i];
}
}
}
printf("홀수의 최대값은 %d이고, 짝수의 최대값은 %d이다.", oddMax, evenMax);
return 0;
}
배열이 배열의 원소로 들어가는 구조 -> 배열의 데이터가 또 다른 배열
구구단을 이용하여 2차원 배열 출력
#include <stdio.h>
#define NUM 10
// main 함수
int main()
{
int i, j;
int gugudan[NUM][NUM];
for(i=1; i<NUM; i++) {
printf("\n[ %d단 ]\n\n", i);
for(j=1; j<NUM; j++) {
gugudan[i][j] = i * j;
printf("%d X %d = %d\n", i, j, gugudan[i][j]);
}
// 2중 for문과 2차원 배열은 밀접한 관계
}
return 0;
}
학생점수의 총 합 출력
#include <stdio.h>
//main 함수
int main()
{
int score[5][2];
int total[2] = {0, };
// 1차원 배열을 할당할 때 모든 데이터 값에 0을 넣어줌
int i;
for(i = 0; i<5; i++) {
printf("%d번 학생의 수학, 영어 점수 : ", i + 1);
scanf("%d %d", &score[i][0], &score[i][1]);
}
for(i=0; i<5; i++) {
total[0] += score[i][0];
total[1] += score[i][1];
}
printf("\n\n5명의 수학 점수 합계 : %d\n", total[0]);
printf("\n\n5명의 영어 점수 합계 : %d\n", total[1]);
return 0;
}