用C语言编写可以多数据混合四则运算的计算器程序
时间: 2024-03-23 10:38:40 浏览: 50
好的,以下是一个支持多数据混合四则运算的计算器程序的实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main() {
float num1, num2, result;
char operator, c;
printf("请输入表达式,以回车结束:\n");
// 读取第一个数字
if (scanf("%f", &num1) != 1) {
printf("无效的表达式\n");
return 1;
}
// 读取剩下的字符,直到遇到换行符
while ((c = getchar()) != '\n') {
// 如果是空白字符则跳过
if (isspace(c)) {
continue;
}
// 如果不是运算符则报错
if (c != '+' && c != '-' && c != '*' && c != '/') {
printf("无效的表达式\n");
return 1;
}
// 读取下一个数字
if (scanf("%f", &num2) != 1) {
printf("无效的表达式\n");
return 1;
}
// 根据运算符计算结果
switch(c) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
if (num2 == 0) {
printf("除数不能为0\n");
return 1;
}
result = num1 / num2;
break;
}
// 将结果赋值给 num1,以便继续进行运算
num1 = result;
}
printf("结果为:%.2f\n", result);
return 0;
}
```
这个程序使用了一个 while 循环来读取一个包含多个数字和运算符的表达式。在每次循环中,先读取一个数字,然后读取一个运算符和下一个数字,根据运算符计算结果,并将结果赋值给 num1,以便继续进行运算。最后输出计算结果。在读取字符时,使用了 isspace 函数来判断是否是空白字符。
阅读全文