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

C 언어로 구현하는 런타임 입력 기반 2차원 배열 프로그램


문제 정의

런타임 컴파일 방식(실행 시점에 사용자로부터 값을 입력받는 방식)을 활용하여 배열의 모든 요소에 대한 합(sum)곱(product)을 계산하는 프로그램을 작성합니다.

해결 방법

2차원 배열은 표 형태의 데이터를 저장해야 하거나 행렬(matrix) 연산을 수행해야 하는 상황에서 주로 사용됩니다.

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

데이터형 배열이름 [행 크기] [열 크기];

예를 들어, 다음과 같이 선언할 수 있습니다.

int a[5][5];

이 경우 배열에 포함된 전체 요소의 개수는 다음과 같이 계산됩니다.

요소 개수 = 행 크기 × 열 크기 = 5 × 5 = 25개

예제 코드

다음은 런타임에 사용자 입력을 받아 두 배열 A와 B의 각 요소별 합과 곱을 계산하고 출력하는 C 프로그램입니다.

#include<stdio.h>
void main(){
   //배열 선언 - 런타임//
   int A[2][3],B[2][3],i,j,sum[i][j],product[i][j];
   //for 반복문을 이용해 배열 A와 B에 값 입력//
   printf("Enter elements into the array A: \n");
   for(i=0;i<2;i++){
      for(j=0;j<3;j++){
         printf("A[%d][%d] :",i,j);
         scanf("%d",&A[i][j]);
      }
      printf("\n");
   }
   for(i=0;i<2;i++){
      for(j=0;j<3;j++){
         printf("B[%d][%d] :",i,j);
         scanf("%d",&B[i][j]);
      }
      printf("\n");
   }
   //합 계산 후 출력//
   printf("Sum array is : \n");
   for(i=0;i<2;i++){
      for(j=0;j<3;j++){
         sum[i][j]=A[i][j]+B[i][j];
         printf("%d\t",sum[i][j]);
      }
      printf("\n");
   }
   //곱 계산 후 출력//
   printf("Product array is : \n");
   for(i=0;i<2;i++){
      for(j=0;j<3;j++){
         product[i][j]=A[i][j]*B[i][j];
         printf("%d\t",product[i][j]);
      }
      printf("\n");
   }
}

코드 설명

이 프로그램의 동작 흐름은 다음과 같습니다.

  1. 배열 선언: 2×3 크기의 2차원 배열 A, B와 결과를 저장할 sum, product 배열을 선언합니다.
  2. 입력 단계: 중첩 for 반복문을 사용하여 배열 A와 B의 각 위치(행, 열)에 해당하는 값을 사용자로부터 입력받습니다.
  3. 합 계산: 두 배열의 같은 위치에 있는 요소끼리 더한 결과를 sum 배열에 저장하고 출력합니다.
  4. 곱 계산: 두 배열의 같은 위치에 있는 요소끼리 곱한 결과를 product 배열에 저장하고 출력합니다.

실행 결과

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

Enter elements into the array A:
A[0][0] :12
A[0][1] :23
A[0][2] :03

A[1][0] :25
A[1][1] :34
A[1][2] :01

B[0][0] :03
B[0][1] :46
B[0][2] :23

B[1][0] :01
B[1][1] :24
B[1][2] :32

Sum array is:
15    69    26
26    58    33
Product array is:
36    1058   69
25    816    32