写-个程序,模拟具有加、减乘、除四种功能的简单计算器,运算结果保留两位小数。例如:输入3*5,输出为15.00;再如,输入5/0,输出error
时间: 2024-12-21 11:24:06 浏览: 4
要创建一个简单的计算器程序,你可以使用C语言中的`stdio.h`, `stdlib.h` 和 `math.h`头文件。下面是一个基本的示例,实现了四则运算并保留两位小数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
// 函数声明
double calculate(char op, ...);
int main() {
double result;
char input[100];
printf("请输入一个表达式(格式如:3+5),或输入'q'退出程序:\n");
while (fgets(input, sizeof(input), stdin)) {
if (input[0] == 'q') {
break;
}
// 分割输入字符串
va_list args;
va_start(args, input);
sscanf(input, "%s %lf", &input[0], &result);
va_end(args);
// 检查是否包含操作符
char op = input[0];
if (op != '+' && op != '-' && op != '*' && op != '/') {
printf("无效的操作符,请重新输入。\n");
continue;
}
// 计算结果
switch (op) {
case '+':
result += va_arg(args, double);
break;
case '-':
result -= va_arg(args, double);
break;
case '*':
result *= va_arg(args, double);
break;
case '/':
// 防止除以零错误
if (va_arg(args, double) == 0) {
printf("error: 不能除以零\n");
continue;
}
result /= va_arg(args, double);
break;
default:
break;
}
// 输出结果,保留两位小数
printf("%.2f\n", result);
}
return 0;
}
// 辅助函数,处理可变参数
double calculate(char op, ...) {
va_list args;
va_start(args, op);
double result = va_arg(args, double);
switch (op) {
case '+':
result += va_arg(args, double);
break;
case '-':
result -= va_arg(args, double);
break;
case '*':
result *= va_arg(args, double);
break;
case '/':
if (va_arg(args, double) == 0) {
va_end(args);
return -1; // 返回一个特殊值表示错误
}
result /= va_arg(args, double);
break;
}
va_end(args);
return result;
}
```
在这个程序中,我们首先从用户那里获取一个输入表达式,然后用`sscanf`解析它。接着根据操作符执行相应的计算,同时处理可能的除以零错误。最后,我们将结果显示出来,保留两位小数。
运行这个程序后,你可以按照提示输入数学表达式进行计算。
阅读全文