본문 바로가기
C언어

[C언어] 일차원 배열이 같은지 검사하는 함수를 작성하여 같은지 다른지 테스트하라 equalarray(int a[], int b[], int n)

by 이얏호이야호 2022. 11. 27.

일차원 배열이 같은지, 다른지 여부를 확인하는 문제를 가지고 왔습니다. 

물론 단번에 코드를 본다면 좋기야 하겠지만 장기적으로 봤을때

혼자풀어보기 -> 힌트 -> 코드보기 순으로 공부하시는게 실력 향상에 큰 도움이 됩니다!

힌트를 보고 천천히 생각을 거쳐서 문제를 풀어보시고

답안을 확인해보세요

더보기

int equalarray(int a[], int b[], int n)
a[] = 비교하는 배열1 
b[] = 비교하는 배열2
n = 배열 원소수 
배열 a와 배열 b가 같은지 여부를 판단하면 됩니다.


기본틀은 이러합니다.

#include<stdio.h>
void copyarray(int from[], int to[], int n);
int main(void){

     int a[] = {2, 4, 6, 8, 10};
int b[] = {2, 4, 6, 8, 10};
     int c[] = {3, 2, 4, 5, 2};
// a,b 배열이 같음을 테스트한다.
// b,c 배열이 다름을 테스트한다.
}
int equalarray(int a[], int b[], int n){
값이 다르면 0을 리턴하고
값이 같으면 1을 리턴한다.

}
작성해 보시고 답안을 확인해주세요^^

결과값
결과값

더보기

답안1

결과값
결과값
#include<stdio.h>

int equalarray(int a[], int b[], int n);

int main(void)
{
	int a[] = {2, 4, 6, 8, 10};
	int b[] = {2, 4, 6, 8, 10};
    	int c[] = {3, 2, 4, 5, 2};    
	

	int result1 = equalarray(a, b, sizeof(a) / sizeof(a[1]));		//a,b를 비교한다
    int result2 = equalarray(b, c, sizeof(b) / sizeof(b[1]));		//b,c를 비교한다
    
	if (result1==1) printf("두배열은같다.\n");			//return 값이 1이면 같고 0이면 다르다
	else printf("두배열은다르다.\n");
    
    if (result2==1) printf("두배열은같다.\n");			//return 값이 1이면 같고 0이면 다르다
	else printf("두배열은다르다.\n");

	return 0;
}

int equalarray(int a[], int b[], int n)
{
	int i;

	for (i = 0; i < n; i++)					//a와 b를 비교하여 다른 구성이 있다면 0을 리턴하고
		if (a[i] != b[i]) return 0;

	return 1;							//a와 b를 비교하여 같다면 1을 리턴한다.
}

 

더보기

답안2

결과값
#include<stdio.h>

int equalarray(int a[], int b[], int n);

int main(void)
{
	int a[] = {2, 4, 6, 8, 10};
	int b[] = {2, 4, 6, 8, 10};
    	int c[] = {3, 2, 4, 5, 2};    
	

	int result1 = equalarray(a, b, sizeof(a) / sizeof(a[1]));		//a,b를 비교한다
    int result2 = equalarray(b, c, sizeof(b) / sizeof(b[1]));		//b,c를 비교한다
    
	if (result1) printf("두배열은같다.\n");			//return 값이 1이면 같고 0이면 다르다
	else printf("두배열은다르다.\n");
    
    if (result2) printf("두배열은같다.\n");			//return 값이 1이면 같고 0이면 다르다
	else printf("두배열은다르다.\n");

	return 0;
}

int equalarray(int a[], int b[], int n)
{
	int i;

	for (i = 0; i < n; i++)					//a와 b를 비교하여 다른 구성이 있다면 0을 리턴하고
		if (a[i] != b[i]) return 0;

	return 1;							//a와 b를 비교하여 같다면 1을 리턴한다.
}

 

 

 

더 많은 C언어 글이 궁금하다면?

https://chuinggun.tistory.com/category/C%EC%96%B8%EC%96%B4

 

댓글