用c语言写一个计算器软件课题要求:1) 能够实现加减乘除功能;2) 要求单字符输入,即输入的数字或符号不需要按回车键;3) 具有一定的容错能力;4) 按回车键或等号键则显示计算结果
时间: 2024-11-30 22:22:41 浏览: 17
在C语言中编写一个简单的命令行计算器,可以按照以下步骤实现:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
double num1 = 0.0, num2 = 0.0;
char op; // 存储运算符
printf("简易计算器\n请输入数字或操作符(输入'='或回车结束计算):\n");
while (true) {
scanf("%lf%c", &num1, &op); // 读取一个数字和运算符
if (op == '+' || op == '-' || op == '*' || op == '/') { // 检查是否是有效的运算符
if (isdigit(op)) { // 如果是数字,则转换成浮点数并重新读取
printf("错误: 输入的不是一个有效运算符。\n");
continue;
}
break; // 否则跳出循环
} else if (op != '=' && op != '\n') { // 非法输入,打印错误提示并继续
printf("错误: 无效的输入。\n");
continue;
}
if (!isdigit(num1)) { // 数字输入错误处理
printf("错误: 第一个数字无效,请重新输入。\n");
num1 = 0.0;
scanf("%lf", &num1);
}
// 读取第二个数字并进行计算
scanf("%lf", &num2);
switch (op) {
case '+':
printf("%.2f + %.2f = %.2f\n", num1, num2, num1 + num2);
break;
case '-':
printf("%.2f - %.2f = %.2f\n", num1, num2, num1 - num2);
break;
case '*':
printf("%.2f * %.2f = %.2f\n", num1, num2, num1 * num2);
break;
case '/':
if (num2 != 0)
printf("%.2f / %.2f = %.2f\n", num1, num2, num1 / num2);
else
printf("错误: 除数不能为零。\n");
break;
default:
printf("未知错误,请检查输入。\n");
}
}
return 0;
}
```
阅读全文