while True:
a = input('请输入第一个数字:')
if a in 'qQ':
break
b = input('请输入第二个数字:')
if b in 'qQ':
break
c = input('请输入+-*/运算符')
if c in 'qQ':
break
print('{:.2f}{}{:.2f}={:.2f}'.format(float(a),c,float(b),eval(a+c+b)))
该回答引用GPTᴼᴾᴱᴺᴬᴵ
下面是使用猜环改写的简单计算器程序的示例代码,可以让用户一直进行四则运算,直到用户输入'q'或者'Q',程序结束。
#include <stdio.h>
int main()
{
double num1, num2, result;
char op;
do {
printf("请输入第一个数字:");
if (scanf("%lf", &num1) != 1) {
printf("输入错误,请重新输入\n");
while (getchar() != '\n'); // 清除输入缓冲区
continue;
}
printf("请输入第二个数字:");
if (scanf("%lf", &num2) != 1) {
printf("输入错误,请重新输入\n");
while (getchar() != '\n'); // 清除输入缓冲区
continue;
}
printf("请输入+-*/运算符:");
while (getchar() != '\n'); // 清除输入缓冲区
if ((op = getchar()) == 'q' || op == 'Q') {
break;
}
switch (op) {
case '+':
result = num1 + num2;
printf("%.2f+%.2f=%.2f\n", num1, num2, result);
break;
case '-':
result = num1 - num2;
printf("%.2f-%.2f=%.2f\n", num1, num2, result);
break;
case '*':
result = num1 * num2;
printf("%.2f*%.2f=%.2f\n", num1, num2, result);
break;
case '/':
if (num2 == 0) {
printf("除数不能为0,请重新输入\n");
continue;
}
result = num1 / num2;
printf("%.2f/%.2f=%.2f\n", num1, num2, result);
break;
default:
printf("运算符输入错误,请重新输入\n");
continue;
}
} while (1);
return 0;
}
程序的逻辑如下:
注意,为了防止输入错误的数据导致程序崩溃,程序在每次输入数字和运算符之后,都会对输入进行合法性检查。如果输入不合法,程序会提示输入错误,并清除输入缓冲区,要求用户重新输入。