用C语言设计一个模拟计算器,要求从键盘输人两个数,再输入算术运算符,输出计算结果(结果保留两位小数)。
时间: 2024-10-17 22:14:34 浏览: 39
在C语言中设计一个简单的计算器,你可以按照下面的步骤进行:
首先,你需要定义一个函数来接收用户输入并处理运算。这个函数可以包括以下几个部分:
1. **输入验证**:获取两个浮点数和一个运算符作为输入,检查是否合法。
```c
#include <stdio.h>
#include <ctype.h> // 包含用于处理字符的头文件
double input_number();
char get_operator();
int main() {
double num1, num2;
char operator;
// 获取用户输入
num1 = input_number();
num2 = input_number();
operator = get_operator();
// 然后计算结果
double result;
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
if (num2 != 0)
result = num1 / num2;
else
printf("Error: Division by zero is not allowed.\n");
break;
default:
printf("Invalid operator. Please enter either +, -, *, or /\n");
return 1;
}
// 输出结果,保留两位小数
printf("Result: %.2f\n", result);
return 0;
}
// 辅助函数:获取并验证数字输入
double input_number() {
double number;
while (true) {
char input_char;
scanf("%lf", &number);
if (scanf("%c", &input_char) == 2 && isspace(input_char)) { // 检查是否有空格
break;
} else if (isdigit(input_char) || input_char == '.') { // 验证输入是否有效
continue;
} else {
printf("Invalid input. Please enter a number.\n");
scanf("%lf", &number); // 清除无效输入
}
}
return number;
}
// 辅助函数:获取运算符
char get_operator() {
char op;
while ((op = getchar()) != '+' && op != '-' && op != '*' && op != '/') {
if (op == EOF || op == '\n') {
printf("Please enter a valid operator (+, -, *, /)\n");
return get_operator(); // 递归获取直到用户输入有效运算符
}
}
return op;
}
```
这个程序通过循环读取用户输入、验证输入内容,并根据运算符进行相应的计算。注意,这个示例没有处理非法输入的情况,实际应用中应加入适当的错误处理。
阅读全文