编写程序,输入一个形式如“操作数!运算符操作数”的四则运 算表达式,输出运算结果,若运算符为’/'时,能处理除数为0的 情况。
时间: 2024-12-11 19:29:15 浏览: 13
要编写一个C语言程序来解析四则运算表达式并处理可能的除零情况,你可以使用`scanf`函数读取用户的输入,然后使用一系列if条件判断和算术运算来进行计算。这里是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h> // 引入处理错误的函数
// 检查是否为有效的除法运算(非零除数)
int safe_division(int numerator, int denominator) {
if (denominator == 0) {
printf("Error: Division by zero is not allowed.\n");
exit(EXIT_FAILURE); // 如果除数为0,终止程序并返回错误
}
return numerator / denominator;
}
int main() {
char expression[50];
int first_num, second_num, result;
printf("Enter a four-operation expression in the format 'numerator!operator!denominator': ");
scanf("%d!%*[^!]%d", &first_num, &second_num); // 使用%*[^!]忽略'!'
char operator;
scanf(" %c", &operator);
switch (operator) {
case '+':
result = first_num + second_num;
break;
case '-':
result = first_num - second_num;
break;
case '*':
result = first_num * second_num;
break;
case '/':
result = safe_division(first_num, second_num);
break;
default:
printf("Invalid operator. Please use +, -, *, or /. Exiting.\n");
exit(EXIT_FAILURE);
}
printf("The result of the operation is: %d\n", result);
return 0;
}
```
在这个例子中,我们首先定义了一个函数`safe_division`来检查除法运算的安全性。如果除数为0,程序会打印错误消息并退出。主函数中,用户输入被分别保存到`first_num`, `second_num`, 和`operator`变量中,然后根据`operator`执行相应的运算。
请注意,这个程序假定用户会正确输入表达式格式和运算符。在实际应用中,你可能需要添加更多的输入验证和错误处理。此外,此示例没有处理浮点数运算,如果你需要支持浮点数,记得更改数据类型和相关的运算符。
阅读全文