본문 바로가기
C언어

[C언어] 2차원 배열을 다른 2차원 배열로 복사하는 array_copy(char array1[], char array2[], int size) 를 함수로 구현하시오

by 이얏호이야호 2020. 5. 5.

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

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

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

답안을 확인해보세요

코드힌트

더보기
결과값

void array_copy(int src[][WIDTH], int dst[][WIDTH]) 

포인터를 이용하여 array를 복사하는 array_copy 함수를 작성

void array_print(int a[][WIDTH])

array를 모두 출력하는 print함수를 작성

프로그램의 기본 틀입니다.

#include <stdio.h>

#define HEIGHT 10

#define WIDTH 10 

void array_copy(int src[][WIDTH], int dst[][WIDTH]);

void array_print(int a[][WIDTH]);

int score[HEIGHT][WIDTH]= { {

		100, 30, 67

	}

	, {

		89, 50, 12

	}

	, {

		19, 60, 90

	}

}

;

int tmp[HEIGHT][WIDTH];

int main(void) {

	array_copy(score, tmp);		//score를 tmp에 복사해서

	array_print(tmp);			//tmp를 프린트하라

	return 0;

}

void array_print(int a[][WIDTH]) {		//프린트하는 함수



}

void array_copy(int src[][WIDTH], int dst[][WIDTH]) {	// 복사하는 함수

	

	}

}

 

 

답안코드

더보기
결과값
결과값
#include <stdio.h>

#define HEIGHT 10

#define WIDTH 10 

void array_copy(int src[][WIDTH], int dst[][WIDTH]);

void array_print(int a[][WIDTH]);

int score[HEIGHT][WIDTH]= { {

		100, 30, 67

	}

	, {

		89, 50, 12

	}

	, {

		19, 60, 90

	}

}

;

int tmp[HEIGHT][WIDTH];

int main(void) {

	array_copy(score, tmp);		//score를 tmp에 복사해서

	array_print(tmp);			//tmp를 프린트하라

	return 0;

}

void array_print(int a[][WIDTH]) {		//프린트하는 함수

	int r,c;

	for (r=0;r<HEIGHT;r++) {

		for (c=0;c<WIDTH;c++)

		printf("%d ", a[r][c]);

		printf("\n");

	}

}

void array_copy(int src[][WIDTH], int dst[][WIDTH]) {		// 복사하는 함수

	int *p=&src[0][0];

	int *end=&src[HEIGHT-1][WIDTH-1];

	int *q=&dst[0][0];

	while(p <= end) {

		*q++ = *p++;

	}

}

 

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

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

 

댓글