Home > Study > C Language > C Example > [ex77] 1개의 정수를 추가하고 배열를 인쇄하시오

[ex77] 1개의 정수를 추가하고 배열를 인쇄하시오
Study Language

문제 설명


첫줄에 입력되는 N(1 <= N <= 17)개 만큼 다음줄에 입력되는 정수(음수, 0, 양수 모두 가능)를 입력받아 배열에 저장한다.
단, 입력되는 값은 오름차순으로 정렬된 상태로 주어지며 같은 값이 중복되어 있을수는 있다.
마지막 줄에 추가할 값을 정수로 입력 받는다.
추가될 값이 오름차순이 되도록 배열에 추가한 후 결과를 인쇄한다.

#include <stdio.h>

int main(void)
{
	
	return 0;
}

입력 예시


10
10 20 30 40 50 60 70 80 90 100
65

출력 예시


10 20 30 40 50 60 65 70 80 90 100

정답 코드


#include <stdio.h>
int N;
int A[17 + 1];
int B;
void InputData(void) 
{
	scanf("%d", &N);
	for (int i = 0; i < N; i++) 
	{
		scanf("%d", &A[i]);
	}
	scanf("%d", &B);
}
void Solve(void) 
{
	int i;
	for (i = N - 1; i >= 0; i--)
	{
		if (A[i] <= B)
		{
			A[i + 1] = B;
			break;
		}
		else
		{
			A[i + 1] = A[i];
		}
	}
	if (i == -1)
	{
		A[0] = B;
	}
}
void OutputData(void)
{
	for (int i = 0; i < N + 1; i++)
	{
		printf("%d ", A[i]);
	}
}
int main(void)
{
	InputData();
	Solve();
	OutputData();
	return 0;
}

메모


printf 내부의 \n 습관화 필요