C语言简单计算器程序退位清除代码
时间: 2024-12-18 17:11:51 浏览: 10
在C语言中编写一个简单的四则运算计算器,如果遇到除数为零的情况(即“退位”),我们通常会捕获这个错误并给出相应的提示,同时清除上一次计算的结果。下面是一个基本示例,假设已经有一个结构体`Calculator`用于保存操作数和结果:
```c
#include <stdio.h>
typedef struct {
int num1;
int num2;
double result;
} Calculator;
void clear(Calculator* calc) {
// 清除结果
calc->result = 0;
}
int main() {
Calculator calc = {0, 0, 0};
while (1) {
printf("请输入两个数字(按q退出): ");
if (scanf("%d %d", &calc.num1, &calc.num2) != 2 || calc.num2 == 0) {
// 如果输入非法或除数为零,先清除之前的结果
clear(&calc);
printf("除数不能为零,请重新输入。\n");
continue;
}
switch (calc.num2) {
case '+':
calc.result = calc.num1 + calc.num2;
break;
case '-':
calc.result = calc.num1 - calc.num2;
break;
case '*':
calc.result = calc.num1 * calc.num2;
break;
case '/':
if (calc.num2 != 0)
calc.result = (double) calc.num1 / calc.num2;
else
printf("错误: 除数不能为零。\n");
break;
case 'q':
return 0; // 用户选择退出,结束循环
default:
printf("无效的操作符,请重新输入。\n");
break;
}
printf("结果: %.2f\n", calc.result);
}
return 0;
}
```
在这个例子中,`clear`函数用于清空`calc`结构体内的`result`值。当检测到除数为零或非法输入时,会调用这个函数,并显示错误信息。注意,`scanf`返回值的检查是为了确保输入的是有效的整数。
阅读全文