Chap.15 도전! 프로그래밍

xyzw·2022년 9월 12일
0

C

목록 보기
4/6

1

Q.

길이가 10인 배열을 선언하고 총 10개의 정수를 입력 받아서, 홀수와 짝수를 구분 지어 출력하는 프로그램을 작성해 보자. 일단 홀수부터 출력하고 나서 짝수를 출력하도록 하자. 단, 10개의 정수는 main 함수 내에서 입력 받도록 하고, 배열 내에 존재하는 홀수만 출력하는 함수와 배열 내에 존재하는 짝수만 출력하는 함수를 각각 정의해서 이 두 함수를 호출하는 방식으로 프로그램을 완성하자.

실행의 예
총 10개의 숫자 입력
입력: 1
입력: 2
입력: 3
입력: 4
입력: 5
입력: 6
입력: 7
입력: 8
입력: 9
입력: 0
홀수출력: 1, 3, 5, 7, 9
짝수출력: 2, 4, 6, 8, 0

A.

#include <stdio.h>

void ShowOdd(int* arr)
{
	int array[10] = { 0 };
	int i, j = 0;
	for(i=0; i<10; i++)
		if (arr[i] % 2 == 1) {
			array[j] = arr[i];
			j++;
		}
	for (i = 0; i < sizeof(array) / sizeof(int); i++)
		printf("%d, ", array[i]);

	printf("\n");
}

void ShowEven(int* arr)
{
	int array[10] = { 0 };
	int i, j = 0;
	for (i = 0; i < 10; i++)
		if (arr[i] % 2 == 0) {
			array[j] = arr[i];
			j++;
		}
	for (i = 0; i < sizeof(array) / sizeof(int); i++)
		printf("%d, ", array[i]);

	printf("\n");
}

int main(void)
{
	int arr[10];
	int i;

	for (i = 0; i < 10; i++) {
		printf("입력: ");
		scanf("%d", &arr[i]);
	}

	ShowOdd(arr);
	ShowEven(arr);

	return 0;
}

해결할 것

홀수, 짝수를 배열에 저장했더니 출력 시 입력한 수 외에 초기화에 쓰였던 0이 출력된다.

2

Q.

프로그램 사용자로부터 10진수 형태로 정수를 하나 입력 받은 다음, 이를 2진수로 변환해서 출력하는 프로그램을 작성해 보자.

실행의 예
10진수정수입력: 12
1100

A.

3

Q.

길이가 io인 배열을 선언하고 총 10개의 정수를 입력 받는다. 단, 입력 받은 숫자가 홀수이면 배열의 앞에서부터 채워나가고, 짝수이면 뒤에서부터 채워나가는 형식을 취하기로 하자. 따라서 사용자가 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]을 입력했다면, 배열에는 [1, 3, 5, 7, 9, 10, 8, 6, 4, 2]의 순으로 저장이 되어야 한다.

실행의 예
총 10개의 숫자 입력
입력: 1
입력: 1
입력: 4
입력: 4
입력: 4
입력: 4
입력: 3
입력: 3
입력: 2
입력: 2
배열 요소의 출력: 1 1 3 3 2 2 4 4 4 4

A.

4

Q.

회문(Palindrome)은 앞으로 읽으나 뒤로 읽으나 차이가 없는 단어들을 뜻한다. 예를 들어서 level, bob과 같은 단어들은 회문에 속한다. 이에 우리는 인자로 전달되는 영단어가 회문인지 아닌지를 판단해서 그 결과를 출력하는 기능의 함수를 정의하고 이에 적절한 main 함수를 정의해보고자 한다. 단 구현의 편의를 위해서 대소문자까지 일치해야 회문으로 인정하기로 하겠다(이는 어디까지나 구현의 편의를 고려한 제약사항일 뿐이다).

실행의 예
문자열 입력 : noon
회문 입니다.

A.

5

Q.

배열에 저장되어 있는 요소들을 내림차순으로 정렬하는 함수를 정의하자(함수의 이름은 DesSort로 정의하자). 그리고 이 함수를 호출하는 예제를 작성해보자.
프로그램의 흐름은 다음과 같이 구성을 하자. 일단 길이가 7인 int형 배열을 선언해서 프로그램 사용자로부터 7개의 정수를 입력 받도록 하자. 그리고 입력 받은 정수를 내림차순으로 정렬하기 위해서, 배열을 인자로 전달하'면서 DesSort 함수를 호출하자. 그리고 마지막으로 제대로 정렬이 되었는지 확인하기 위해서 배열의 요소들을 순서대로 출력해보자.

살행의 예
입력: 1
입력: 2
입력: 3
입력: 4
입력: 5
입력: 6
입력: 7
7 6 5 4 3 2 1

0개의 댓글