문제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");
}