<문제>
함수와 포인터를 이용해 +, -, *, /, % 연산을 이용해 입력된 두 숫자를 계산하는 계산기를 만드시오
<해설.1>
#include <stdio.h> //계산기
int add(int x, int y);
int sub(int x, int y);
int mul(int x, int y);
int div(int x, int y);
int rem(int x, int y);
int main(){
int num_1, num_2;
char mrk; //문자형으로 받을 땐 char 주의
printf("첫번째 값을 입력해주세요 : ");
scanf("%d", &num_1);
printf("연산자 +, -, *, /, %% 중 쓸 기호를 입력하세요 : ");
scanf(" %c", &mrk); // 문자를 입력받을 시 '%c' 에서 스페이스바 하나를 넣어 ' %c'로 해야 오류가 나지 않는다.
printf("두번째 값을 입력하세요 : ");
scanf("%d", &num_2);
int (*fp)(int, int);
if(mrk == '+') fp = add;
if(mrk == '-') fp = sub;
if(mrk == '*') fp = mul;
if(mrk == '/'){
if(num_2 != 0) fp = mul;
else{
printf("0 으로 나눌 수 없습니다. \n");
}
}
if(mrk == '%'){
if(num_2 != 0) fp = div;
else{
printf("0으로 나눌 수 없습니다. \n");
}
}
printf("%d ", fp(num_1, num_2) );
return 0;
}
int add(int x, int y){
return x+y;
}
int sub(int x, int y){
return x-y;
}
int mul(int x, int y){
return x*y;
}
int div(int x, int y){
return x/y;
}
int rem(int x, int y){
return x%y;
}
'C > Example' 카테고리의 다른 글
[C] 예제 (매개변수 포인터) (0) | 2021.03.05 |
---|---|
[C] 예제 - 계산기 제작 (함수, 포인터, 배열) (0) | 2021.03.05 |
[C] 예제 (함수, 포인터) (0) | 2021.03.05 |
[C] 예제 - 소수 판별 (함수 이용) (0) | 2021.03.05 |
댓글