C语言怎么输入一个数得到一个字输入一个四则运算表达式,输出运算结果,要求对除数为0的情况作特别处理。题目保证输入与输出均在双精度范围内。
时间: 2024-10-20 09:19:35 浏览: 20
在C语言中,你可以通过标准输入流`stdin`获取用户输入的四则运算表达式,并使用字符串处理函数如`fgets()`读取整个输入行。然后你需要解析这个字符串来识别操作数和运算符,可以考虑使用栈来辅助计算过程。对于除法部分,需要检查除数是否为0,以避免运行时错误。
以下是一个简单的示例代码片段:
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
double eval_expression(char* expression) {
double num1 = atof(expression);
char op;
if (expression[strlen(expression)-1] != '\n') {
scanf("%lf %c", &num2, &op); // 如果还有下一个数字和运算符
switch(op) {
case '+':
return num1 + num2;
case '- num2;
case '*':
return num1 * num2;
case '/':
if (num2 == 0) { // 检查除数是否为0
printf("Error: Division by zero is not allowed.\n");
exit(1);
}
return num1 / num2;
default:
printf("Invalid operator.\n");
return 0; // 返回错误处理
}
} else { // 如果只有单个数字
return num1;
}
}
int main() {
char input[100];
fgets(input, sizeof(input), stdin);
input[strcspn(input, "\n")] = '\0'; // 清除换行符
double result = eval_expression(input);
printf("Result: %.2f\n", result);
return 0;
}
```
阅读全文