#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main() {
int a, c, res;
char b;
int discard;
char choice = 'Y';
while (choice == 'Y' || choice == 'y') {
int isValid = 1;
while (isValid == 1) {
// 提示用户输入表达式
printf("请输入计算表达式 a op c:");
// 读取输入的表达式,包括运算数和运算符
scanf("%d %c %d", &a, &b, &c);
// 根据运算符进行相应的计算
switch (b) {
case '+':
res = a + c;
isValid = 0;
break;
case '*':
res = a * c;
isValid = 0;
break;
case '-':
res = a - c;
isValid = 0;
break;
case '/':
// 验证除数是否为零
if (c == 0) {
printf("除数不能为零!请重新输入。\n");
isValid = 1;
}
else {
res = a / c;
isValid = 0;
}
break;
default:
// 无法识别的运算符
printf("无效的运算符!请重新输入。\n");
isValid = 1;
// 清除输入缓冲区的多余字符
while ((discard = getchar()) != '\n' && discard != EOF);
break;
}
}
// 输出计算结果
printf("%d %c %d = %d\n", a, b, c, res);
printf("你还要继续吗?继续请输入(Y/N):");
// 清除输入缓冲区的换行符
while ((discard = getchar()) != '\n' && discard != EOF);
scanf(" %c", &choice);
// 合法性检验
while (choice != 'Y' && choice != 'y' && choice != 'N' && choice != 'n') {
printf("输入错误,请重新输入:");
while ((discard = getchar()) != '\n' && discard != EOF);
scanf(" %c", &choice);
}
}
return 0;
}