카테고리 없음2017. 11. 11. 13:42

문제1. 사이즈가 같은 두 개의 2차원 행렬을 입력하여 두 개의 행렬의 값이 모두 같다면 "두 개의 행렬 값이 같다",
그렇지 않으면 "두 개의 행렬 값이 다르다"를 출력하는 프로그램을 작성하시오.

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int main()
{
 // 크기가 2x2로 같은 2차원 행렬 선언
 int array[2][2];
 int array2[2][2];

 

 // array1 입력 받음
 for(int i = 0; i < 2 ; i ++){
  for( int j = 0 ; j < 2 ; j++){
   printf("array1의 [%d][%d]행렬값을 입력하시오",i,j);
   scanf("%d",&array[i][j]);
  }
 }

 // array2 입력 받음
 for(int i = 0; i < 2 ; i ++){
  for( int j = 0 ; j < 2 ; j++){
   printf("array2의 [%d][%d]행렬값을 입력하시오",i,j);
   scanf("%d",&array2[i][j]);;
  }
 }


 // 비교
 int Comparison = 0;

 for(int i = 0; i < 2 ; i ++){
  for( int j = 0 ; j < 2 ; j++){
   if (array[i][j] == array2[i][j])
    Comparison ++;
  }
 }

 if(Comparison == 4)
  printf("두 개의 행렬 값이 같다.");
 else
  printf("두 개의 행렬 값이 다르다.");

 


}

 

 

 

 

 

문제 2. 배열로 작성한 문제1의 프로그램을 포인터를 사용하여 변환하여 프로그램을 작성하시오.

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int main()
{
 // 크기가 2x2로 같은 2차원 행렬 선언
 int array[2][2];
 
 int array2[2][2];

 

 // array1 입력 받음
 for(int i = 0; i < 2 ; i ++){
  for( int j = 0 ; j < 2 ; j++){
   printf("array1의 [%d][%d]행렬값을 입력하시오",i,j);
   scanf("%d",&array[i][j]);
  }
 }

 // array2 입력 받음
 for(int i = 0; i < 2 ; i ++){
  for( int j = 0 ; j < 2 ; j++){
   printf("array2의 [%d][%d]행렬값을 입력하시오",i,j);
   scanf("%d",&array2[i][j]);;
  }
 }
 
 //비교
 int Comparison = 0;
 for(int i = 0 ; i < 2 ; i ++ )
 {
  for(int j = 0 ; j < 2 ; j ++ )
  {
   if (*(array[i]+j) == *(array2[i]+j))
   Comparison ++;
  }
 }

 if(Comparison == 4)
 printf("두 개의 행렬 값이 같다.\n");
 else printf("두 개의 행렬 값이 다르다.\n");


}

Posted by 넓스