배열(Array)이란?
배열은 서로 관련된 데이터 항목들을 하나의 이름으로 묶어 저장하는 자료구조입니다. 여러 개의 변수를 따로 선언하는 대신, 하나의 배열 이름으로 동일한 타입의 데이터를 효율적으로 관리할 수 있습니다.
예를 들어 다음과 같이 선언할 수 있습니다:
int student[30]; // student는 하나의 변수 이름으로 30개의 데이터 항목을 담는 배열입니다
배열의 주요 연산
탐색(Searching) − 특정 요소가 배열 안에 존재하는지 확인하는 연산입니다.
정렬(Sorting) − 배열의 요소들을 오름차순 또는 내림차순으로 정렬하는 데 사용됩니다.
순회(Traversing) − 배열의 모든 요소를 처음부터 끝까지 순서대로 처리합니다.
삽입(Inserting) − 배열에 새로운 요소를 추가하는 연산입니다.
삭제(Deleting) − 배열에서 특정 요소를 제거하는 연산입니다.
배열 산술 연산의 기본 로직
두 배열 A와 B의 같은 인덱스에 있는 요소끼리 산술 연산을 수행하려면 반복문을 활용하면 됩니다. 핵심 로직은 다음과 같습니다:
for(i = 0; i < size; i++){
add [i] = A[i] + B[i];
sub [i] = A[i] - B[i];
mul [i] = A[i] * B[i];
div [i] = A[i] / B[i];
mod [i] = A[i] % B[i];
}
반복문이 인덱스 0부터 size-1까지 순회하면서 각 위치에서 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 연산을 한 번에 계산합니다. 나눗셈 결과의 소수점 이하 값을 표현하기 위해 몫을 저장하는 div 배열은 float형으로 선언해야 합니다.
C 언어 전체 프로그램
다음은 사용자로부터 두 배열을 입력받아 다섯 가지 산술 연산을 수행하고 그 결과를 표 형태로 출력하는 완전한 C 프로그램입니다:
#include<stdio.h>
int main(){
int size, i, A[50], B[50];
int add[10], sub[10], mul[10], mod[10];
float div[10];
printf("enter array size:\n");
scanf("%d", &size);
printf("enter elements of 1st array:\n");
for(i = 0; i < size; i++){
scanf("%d", &A[i]);
}
printf("enter the elements of 2nd array:\n");
for(i = 0; i < size; i++){
scanf("%d", &B[i]);
}
for(i = 0; i < size; i++){
add [i] = A[i] + B[i];
sub [i] = A[i] - B[i];
mul [i] = A[i] * B[i];
div [i] = A[i] / B[i];
mod [i] = A[i] % B[i];
}
printf("\n add\t sub\t Mul\t Div\t Mod\n");
printf("------------------------------------\n");
for(i = 0; i < size; i++){
printf("\n%d\t ", add[i]);
printf("%d \t ", sub[i]);
printf("%d \t ", mul[i]);
printf("%.2f\t ", div[i]);
printf("%d \t ", mod[i]);
}
return 0;
}
실행 결과
위 프로그램을 컴파일하고 실행하면 다음과 같은 결과를 확인할 수 있습니다:
Run 1: enter array size: 2 enter elements of 1st array: 23 45 enter the elements of 2nd array: 67 89 add sub Mul Div Mod ------------------------------------ 90 -44 1541 0.00 23 134 -44 4005 0.00 45 Run 2: enter array size: 4 enter elements of 1st array: 89 23 12 56 enter the elements of 2nd array: 2 4 7 8 add sub Mul Div Mod ------------------------------------ 91 87 178 44.00 1 27 19 92 5.00 3 19 5 84 1.00 5 64 48 448 7.00 0
주의 사항
나눗셈(div)과 나머지(mod) 연산을 수행할 때 두 번째 배열의 값이 0이면 런타임 오류가 발생할 수 있으므로, 실제 프로젝트에서는 0으로 나누는 경우를 미리 검사하는 것이 좋습니다. 또한 배열 크기(size)가 선언된 배열의 최대 크기를 초과하지 않도록 입력값을 검증하는 것도 안전한 코드 작성의 중요한 습관입니다.