본문 바로가기
지난 학기들의 기록/C 기초

[C실습] 배열 예제- 홀수와 짝수로 구분해서 정렬하기

by 아메리카노와떡볶이 2020. 5. 31.
728x90

#pragma warning(disable:4996)
#include <stdio.h>

/* 문제2 .  10개의 양의 정수를 입력받아서 입력받은 숫자가 홀수면 배열의 앞에서부터, 짝수면 뒤에서부터 채워서 10개의 양의 정수를 재배열하여 출력하시오. */
int main() {

int num[10];
int num2[10] = { 0 }; // 정수를 재정렬하여 담을 배열선언
int p = 0, q = 9;// p는 start, q는 end   이게 핵심 아이디어

for (int i=0;i<10;i++){
scanf("%d", &num[i]);
}// 배열에 정수10개 입력받기

for (int i = 0; i < 10; i++) {
if (num[i] % 2 == 0) { //짝수이면 뒤에서부터
num2[q] = num[i]; //새로운 배열로 값을 옮깁니다.
q--; //배열인덱스를 end지점에서부터 1 감소시킵니다.
}

else {// 홀수이면 앞에서부터 채워줍니다
num2[p] = num[i];// 새로운 배열로 값을 옮깁니다.
p++;// 배열인덱스를 시작지점 0부터 출발하여 1추가합니다.
}
}

for (int i = 0; i < 10; i++) {
printf("%d ",num2[i]);
} // 재정렬된 배열을 출력합니다.

return 0;
}

728x90

댓글