#include <stdio.h>
#include <string.h>
int calc(char o, int i1, int i2);
char input(void);
int input_int(int min, int max);
char in_op;
int flag = 0;
int main() {
int max = 9999, min = -9999, in_1, in_2, ans;
printf("演算子と二つの整数値(%d〜%d)を順に入力\n", min, max);
for (;;) {
printf("演算子==>");
in_op = input();
if (in_op == 'E')
return 0;
printf("一つ目の整数==>");
in_1 = input_int(min, max);
flag = 1;
printf("二つ目の整数==>");
in_2 = input_int(min, max);
flag = 0;
ans = calc(in_op, in_1, in_2);
printf("%d %c %d = %d\n", in_1, in_op, in_2, ans);
}
}
char input(void) {
char operator[5];
for (;;) {
scanf("%s", operator);
if (!strcmp(operator, "+"))
return operator[0];
if (!strcmp(operator, "-"))
return operator[0];
if (!strcmp(operator, "*"))
return operator[0];
if (!strcmp(operator, "/"))
return operator[0];
if (!strcmp(operator, "%"))
return operator[0];
if (!strcmp(operator, "E"))
return operator[0];
else
printf("error input again\n");
}
}
int input_int(int min, int max) {
int i;
for (;;) {
scanf("%d", &i);
if (((in_op == '/') || (in_op == '%')) && (i == 0) && (flag == 1)) {
printf("0 error input again\n");
} else if (i >= min && i <= max) {
return i;
} else {
printf("error input again\n");
}
}
}
int calc(char o, int i1, int i2) {
int answer;
if (o == '+')
answer = i1 + i2;
if (o == '-')
answer = i1 - i2;
if (o == '*')
answer = i1 * i2;
if (o == '/')
answer = i1 / i2;
if (o == '%')
answer = i1 % i2;
return answer;
}