본문 바로가기
프로그래밍 _공부자료./C++ 공부

배열을 활용하고 순서 짝수는 왼쪽으로 홀수는 오른쪽으로 정렬하여 출력하기.

by 대구부자 2020. 2. 8.
반응형

문제)

배열[10]칸의 초기화가 되었다

1,2,3,4,5,6,7,8,9,10

위와같이 배열의 초기화가 되어 있는 상태에서

배열의 순서를 바꿔서

 

배열크기의 반을잘라 홀수는 왼쪽부터 

짝수는 오른쪽부터

 

1,3,5,7,9,2,4,6,8,10

의 순서가 나오도록 출력하라.

 

 

아래는 구현한 배열과 for문을 활용하여 구현한

소스코드 이다.

 

 

 

 

#include <stdio.h>
#include <iostream>


int main() 
{

	int array[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int num=10;
	int temp;
	int cnt_2 = 5;
	int cnt_1 = 0;
	int temparray[10] = { 0, };

	for (int i = 0; i < num; i++) 
	{
		if (array[i] % 2 == 0)
		{
			temp = array[i];
			temparray[cnt_2]=temp;
			cnt_2++;
		}
		else if (array[i] % 2 == 1) 
		{
			temp = array[i];
			temparray[cnt_1] = temp;
			cnt_1++;
		}
	}
	
	for (int k = 0; k < num; k++) 
	{
		printf("%d\n", temparray[k]);
	}
	printf("\n");

	system("pause");
	return 0;
}

 

풀이)

첫번째 문제 해결 조건으로,

출력값을 보니 배열의 INDEX 5번째 칸이후로는 

짝수가 들어 간다.

따라서 5번째 칸이후로 짝수를 집어 넣고, 인덱스를

저장할 공간을 임의로 1칸 늘린다.

 

홀수 또한 마찬가지이다 배열의 0번째 인덱스 부터

4번째 인덱스 까지가 홀수가 들어간다.

 

따라서 홀수의 값을 집어 넣고 다음인덱스를 가리킬 변수하나가

필요하다.

 

이 방식으로 접근한다면 

위의 소스 코드가 이해가 갈것이다.

반응형

댓글