C语言:编写一个程序,使其能读入并计算以个只包含加减运算的表达式

来源:百度知道 编辑:UC知道 时间:2024/05/26 16:09:38
每一个输入都是浮点数。除了第一个数,其余每个数前面都有一个运算符,例如:
23+43-233+234;表达式以分号结束。
第一位老兄的这个逻辑有问题诶。。第二位老兄,你那个太复杂了吧,,有没有简单易懂的啊?

#include<iostream>
#include<string.h>
using namespace std;
main ()
{
char a[1000];
cin>>a;
int s=0,c=1,b=0;//c是符号,b是当前数字,s是和
for (int i=0;i<=strlen (a);i++)
{if (a[i]>='0' && a[i]<='9'){b*=10;b+=(a[i]-'0')*c;}
if (a[i]=='+'){c=1;s+=b;b=0;}
if (a[i]=='-'){c=-1;s+=b;b=0;}
if (a[i]==';'){s+=b;cout<<s;break;}
}
// cin>>s;
}
//百度上的';'太难看了

#include <stdio.h>
int main(){
double a;
char fh='+';
double sum=0.0;
while(scanf("%lf",&a)!=EOF){
if(fh=='+')sum+=a;
else sum-=a;
scanf("%c",&fh);
if(fh==';')break;
}
printf("value=%lf\n",sum);
return 0;
}
我假设的是表达式最前面有个'+',这不影响表达式的值。调试是正确的。

#include <stdio.h>
#include <