본문 바로가기
Study (etc)/C

[포인터]함수의 인자로 배열 전달하기 (1)

by Haren 2019. 2. 3.

윤성우 저 '열혈 C 프로그래밍' 교재의 '도전! 프로그래밍 2' 의 도전 1번 문제이다.



▶ 도전 1

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




소스코드

#include <stdio.h>

void OddNum(const int * num,int len) //홀수 구별, 배열 내의 요소를 변경되지 않도록 const 선언
{
	int i;
	
	printf("홀수 : ");
	for (i = 0; i < len; i++)
	{
		if (num[i] % 2 != 0)
			printf("%d ", num[i]);

	}
	printf("\n");
}

void EvenNum(const int * num, int len) //짝수 구별, 배열 내의 요소를 변경되지 않도록 const 선언
{
	int i;
	
	printf("짝수 : ");
	for (i = 0; i < len; i++)
	{
		if (num[i] % 2 == 0)
			printf("%d ", num[i]);
	}
	printf("\n");
}

int main()
{
	int num[10];
	int *arr = #
	int i;

	printf("총 10개의 숫자 입력 \n");

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

	OddNum(arr,sizeof(num)/sizeof(int)); //포인터로 배열의 주소값 전달 및 배열의 길이 전달
	EvenNum(arr,sizeof(num)/sizeof(int));

	return 0;
}




실행 결과


'Study (etc) > C' 카테고리의 다른 글

[배열]2차원 배열 옮기기  (0) 2019.02.04
[정렬]버블 정렬  (0) 2019.02.03
[함수]세 변수에 저장된 값 바꾸기  (0) 2019.02.03
[배열]배열의 최솟값, 최댓값, 합  (0) 2019.01.28
[반복문]continue, break의 활용  (0) 2019.01.07