Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어로 2차원 배열의 모든 요소 합계 구하기


문제

런타임 초기화(run-time initialization)를 사용하여 2차원 배열의 모든 요소의 합을 계산하는 프로그램을 작성해 보겠습니다.

개념 설명

2차원 배열은 표(table) 형태의 값들을 저장해야 하거나 행렬(matrix) 관련 응용 프로그램을 작성할 때 주로 사용됩니다.

2차원 배열을 선언하는 기본 문법은 다음과 같습니다.

datatype array_name[행 크기][열 크기];

예를 들어 int a[4][4];와 같이 선언하면, 이 배열에 포함된 전체 요소의 개수는 다음과 같이 계산됩니다.

배열의 요소 수 = 행 크기 × 열 크기 = 4 × 4 = 16

예제 코드

다음은 런타임에 사용자로부터 값을 입력받아(run-time initialization) 2차원 배열의 짝수 요소와 홀수 요소의 합을 각각 계산하는 C 프로그램입니다.

#include<stdio.h>
void main(){
   //배열과 변수 선언//
   int A[4][3],i,j,even=0,odd=0;
   //배열에 요소 입력 받기//
   printf("Enter elements into the array A :\n");
   for(i=0;i<4;i++){
      for(j=0;j<3;j++){
         printf("A[%d][%d] : ",i,j);
         scanf("%d",&A[i][j]);
    }
   }
   //for 반복문으로 배열 내 짝수 요소와 홀수 요소의 합 계산//
   for(i=0;i<4;i++){
      for(j=0;j<3;j++){
         if((A[i][j])%2==0){
            even = even+A[i][j];
         }
         else{
            odd = odd+A[i][j];
         }
      }
   }
   printf("Sum of even elements in array A is : %d\n",even);
   printf("Sum of odd elements in array A is : %d",odd);
}

코드 동작 원리

이 프로그램은 두 단계의 중첩된 for 반복문을 사용합니다. 첫 번째 반복문은 사용자로부터 4×3 크기의 배열에 값을 하나씩 입력받고, 두 번째 반복문은 각 요소를 2로 나눈 나머지가 0인지 확인하여 짝수이면 even 변수에, 그렇지 않으면 odd 변수에 더합니다. 모든 요소를 검사한 후 최종 결과를 화면에 출력합니다.

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

Enter elements into the array A:
A[0][0] : 01
A[0][1] : 02
A[0][2] : 03
A[1][0] : 04
A[1][1] : 10
A[1][2] : 20
A[2][0] : 30
A[2][1] : 40
A[2][2] : 22
A[3][0] : 33
A[3][1] : 44
A[3][2] : 55
Sum of even elements in array A is: 172
Sum of odd elements in array A is: 92

입력된 값들 중 짝수(2, 4, 10, 20, 30, 40, 22, 44)의 합은 172이고, 홀수(1, 3, 33, 55)의 합은 92임을 확인할 수 있습니다.