728x90
<C언어 - 전처리기와 매크로를 사용해서 만든 계산기>
1. math.h (헤더파일)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
typedef struct calculator
{
int num1;
int num2;
}cal;
void menu(void);
void plus(const cal *);
void minus(const cal *);
void multiply(const cal *);
void division(const cal *);
void squared(const cal *);
void factorial(const cal *);
|
cs |
2. 소스1.c (소스파일)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
#include<stdio.h>
#include"math.h"
#define DEBUG
#define p(a,b) (a+b)
#define m(a,b) (a-b)
#define mu(a,b) ((a)*(b))
#define d(a,b) ((a)/(b))
#define r(a,b) ((a)%(b))
#define s(a) ((a)*(a))
void menu(void)
{
puts("--------------------------------------------------------------");
puts("1.덧셈 2.뺄셈 3.곱셈 4.나눗셈 5.제곱 6.팩토리얼 (그외.나가기)");
puts("--------------------------------------------------------------");
}
void plus(const cal *x)
{
#ifdef DEBUG
printf("%d+%d = %d\n", x->num1, x->num2, p(x->num1, x->num2));
#endif // DEBUG
}
void minus(const cal *x)
{
#ifdef DEBUG
printf("%d-%d = %d\n", x->num1, x->num2, m(x->num1, x->num2));
#endif // DEBUG
}
void multiply(const cal *x)
{
#ifdef DEBUG
printf("%d*%d = %d\n", x->num1, x->num2, mu(x->num1, x->num2));
#endif // DEBUG
}
void division(const cal *x)
{
#ifdef DEBUG
printf("%d/%d = %d\n", x->num1, x->num2, d(x->num1, x->num2));
printf("나머지 = %d\n", r(x->num1, x->num2));
#endif // DEBUG
}
void squared(const cal *x)
{
#ifdef DEBUG
printf("%d의 제곱 = %d\n", x->num1, s(x->num1));
#endif // DEBUG
}
void factorial(const cal *x)
{
int result = 1;
for (int i = 1; i <= x->num1; i++)
{
result = result * i;
}
#ifdef DEBUG
printf("%d! = %d\n", x->num1, result);
#endif // DEBUG
}
|
cs |
3. 소스.c (소스파일)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
#include<stdio.h>
#include"math.h"
#include<stdlib.h>
#include<string.h>
#include<time.h>
int main()
{
int menu_code;
cal num = { NULL };
menu();
printf("메뉴를 선택하시오.\n");
scanf("%d",&menu_code);
if (menu_code > 0 && menu_code < 7)
{
if (menu_code == 5)
{
printf("제곱할 수를 입력하시오\n");
scanf("%d", &num.num1);
}
else if (menu_code == 6)
{
printf("팩토리얼 계산을 할 수를 입력하시오\n");
scanf("%d", &num.num1);
}
else
{
printf("첫번째 항을 입력하시오\n");
scanf("%d", &num.num1);
printf("두번째 항을 입력하시오\n");
scanf("%d", &num.num2);
}
}
switch (menu_code)
{
case(1) :
plus(&num);
break;
case(2) :
minus(&num);
break;
case(3) :
multiply(&num);
break;
case(4) :
division(&num);
break;
case(5) :
squared(&num);
break;
case(6) :
factorial(&num);
break;
default:
break;
}
return 0;
}
|
cs |
(본 프로그램은 저자 본인인 직접만든 프로그램임을 명시합니다.)
(위 포스팅에 사용된 이미지는 저작권이 해결된 이미지임을 밝힙니다.)
728x90