#include <stdio.h>
#pragma warning(disable:4996)
void add(int num1, int num2);
void subtract(int a, int b);
int main()
{
void(*pointer)(int, int);
int a, b;
char c;
printf("숫자 두개와 기호를 입력하세요 : ");
scanf("%d %c %d\n", &a, &c, &b);
if (c == '+')
pointer = add;
else if (c == '-')
pointer = subtract;
else
printf("가운데에는 -나 +를 입력하세요\n");
pointer(a, b);
return 0;
}
void add(int num1, int num2)
{
int result;
result = num1 + num2;
printf("%d + %d = %d입니다\n", num1, num2, result);
}
void subtract(int a, int b)
{
int result;
result = a - b;
printf("%d - %d = %d입니다\n", a, b, result);
}
뭐가 문젠가요..?ㅠㅠ
연산자가 정의된 두 가지 경우엔 대입이 되었지만 둘 다 아닌 경우엔 아무것도 대입 안했잖아.
else 인 경우엔 바로 return 해버리든지, 아예 디폴트로 덧셈을 대입해 놓고 쓰든지.
else의 경우 return 시켰는데 경고는 안뜨는데 시키는대로 숫자 두개와 부호를 적어넣어도 원하는 값이 안나오고 숫자를 하나 더 쳐야 나오네요..어디가틀렸나요ㅠㅠ
scanf 에 \n 을 왜 넣어? 멍청멍청하게