include<bits/stdc++.h> using namespace std; double cal() { char s[30]; cin>>s; if(s[0]=='+') return cal()+cal(); else if(s[0]=='-') return cal()-cal(); else if(s[0]=='*') return cal()*cal(); else if(s[0]=='/') return cal()/cal(); else return atof(s); } int main() { printf("%f\n",cal()); return 0; }
时间: 2024-04-18 09:30:01 浏览: 78
C++万能头: bits/stdc++.h 下载
这段代码与之前的代码逻辑相同,只是使用了字符数组 `s` 代替了单个字符 `temp`,并且通过 `cin` 直接读取一个字符串。其余的逻辑没有改变。
`cal()` 函数首先读取一个字符串 `s`,然后根据 `s[0]` 的值来判断运算符是加号、减号、乘号还是除号。如果是加号或减号,则递归调用 `cal()` 函数来计算左右两个操作数,并返回它们之间的和或差。如果是乘号或除号,则同样递归调用 `cal()` 函数来计算左右两个操作数,并返回它们之间的积或商。如果是其他字符,则将字符串转换为浮点数并返回。
主函数中调用 `cal()` 函数来计算表达式的结果,并使用 `printf()` 函数将结果输出。
与之前相同,这段代码中使用了非标准的头文件包含方式 `#include<bits/stdc++.h>`,不推荐使用。应该根据实际需要包含相关的标准头文件,比如 `<iostream>` 和 `<cstdio>`。
阅读全文