본문 바로가기
윤성우 열혈강의 C 정리

[ C 열혈강의 ] 26장 연습문제 : 매크로와 선행처리

by 어린왕자1234 2022. 7. 9.
//[ 문제26-1 : macro의 정의 ]  
//문제1. 세정수의 덧셈, 곱셈 함수 매크로

# include<stdio.h>
# include<string.h>
# include<stdlib.h>
# include<math.h>

# define ADD(X,Y,Z) ((X) + (Y) + (Z))
# define MUL(X,Y,Z) ((X) * (Y) * (Z))

int main(void)
{
	int num1, num2, num3;
	printf("세 정수 입력 :");
	scanf_s("%d %d %d", &num1, &num2, &num3);
	printf("덧셈 결과 :%d\n", ADD(num1, num2, num3));
	printf("곱셈 결과 :%d", MUL(num1, num2, num3));

	return 0;
}

 


 

//[ 문제26-1 : macro의 정의 ]  
//문제2. 매크로 정의 - PI, AREA

# include<stdio.h>
# include<string.h>
# include<stdlib.h>
# include<math.h>

# define PI 3.1415
# define AREA(R) ((PI)*(R)*(R))
int main(void)
{
	double r;
	printf("반지름 입력 :");
	scanf_s("%lf", &r);
	printf("원의 넓이 :%.3f\n", AREA(r));
	return 0;
}

 


 

//[ 문제26-1 : macro의 정의 ]  
//문제3. 큰 값 반환 매크로 - 조건 연산자 이용

# include<stdio.h>
# include<string.h>
# include<stdlib.h>
# include<math.h>

# define MAX_NUM(X,Y) (((X)>(Y))? (X):(Y))

int main(void)
{
	int i, j;
	printf("수개의 숫자 입력 :");
	scanf_s("%d %d", &i,&j);
	printf("큰 값 반환 :%d", MAX_NUM(i, j));
	return 0;
}