一道编程题,急求高手帮忙解决!谢谢啦!

题目如下:

在一个教学软件中,需要设计一个计算器,功能如下:使用者在键盘上键入一个算术表达式(如76+12+34=、89-14=、12+56-67=),请编写一个程序分析该输入串,并计算机其算术值。

注1:为了简化问题,运算符仅考虑加法和减法,数值为整数,并且不考虑串中可能含有空格等其他符号。

注2:整个算术表达式要作为一个字符串来处理,否则不得分。

请写出具体的编程过程或者解题思路,谢谢!
希望用C语言编程来做!谢谢各位

void main(){
int flag=0,dflag=1;
int i,j;
int t=0;
char str[50];
cout<<"输入表达式(以=结束):";
gets(str);
i=0;
int res=0;
while(str[i]!='\0'){
if(str[i]<='9'&&str[i]>='0'){
if(flag==0){
flag=1;
t=str[i]-'0';
}
else{
t=t*10+(str[i]-'0');
}
}
else{
flag=0;res+=t*dflag;t=0;
if(str[i]=='+'){
dflag=1;

}
else if(str[i]=='-'){
dflag=-1;
}
}
i++;
}
cout<<"结果为"<<res<<endl;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-11-27
#include<iostream>
#include<string>

using namespace std;

int main()
{
string str;
cin >> str;

int a, b;
int i = 0;
a = 0;
while (i < str.size() && str[i] >= '0' && str[i]<='9') //是数字,获取第一个数
a = a * 10 + str[i++] - '0';
while (i < str.size())
{
int ch = str[i++]; //获取运算符
b = 0;
while (i < str.size() && str[i] >= '0' && str[i]<='9') //是数字,获取第二个数
b = b * 10 + str[i++] - '0';
switch (ch)
{
case '+' : a += b; break;
case '-' : a -= b; break;
}
}
cout << str << " = " << a << endl;

system("pause");
return 0;
}

C语言编程求助!!!求高手帮忙!感激不尽!
include "stdio.h"include"string.h"int main(){ int i,s = 0; \/*请修改此处:int和i间有空格; 计算的和值s首先要清零 *\/ char str[80];i=0;while ((str[i]=getchar())!='\\n')i++;str[i]='\\0';for(i=0;i<80;i++)if (str[i]>='0' && str[i]<='9') \/*...

C++求高手帮忙写个程序...输出“生日快乐”四个字..用符号拼出来..谢 ...
2016-05-03 C++: 根据题目要求,写出程序和输出结果,急,求高手帮忙 2011-12-17 求c++高手,帮忙做一道编程题,急用,谢谢 1 2014-10-15 C++作业,求高手帮忙,谢谢!! 2013-05-28 用c++程序输出图形,求高手写一个~ 5 更多类似问题 > 高手帮忙的相关知识2011-03-11 高手帮忙设计艺术签名 296 2012-07-15...

求做一道题!!!数控车床操作人员编程题,谢谢!!!
先粗车外圆,端面,然后精车外圆端面,再后就切退刀槽,最后攻螺纹。(T0101:外圆刀,T0202:3mm切断刀,T0303:螺纹刀)2.建立坐标系,在右端面中点,对刀的时候用手轮顺便刮断面,或者你可以自己编进程序里,刮的时候不能摇太快.牙深 h=螺距*1.107\/2 X相对应的直径值:30-1.107*2*...

vc++的一道题 清高高高手帮个忙
编程设计一个简单的火车站车票预定系统,假设始发站固定,车票信息如下:车次、终点站、发车时间、到站时间、票价金额、剩余票数。要求:1)建立一个车票类,其中属性包括始发站、车次... 编程设计一个简单的火车站车票预定系统,假设始发站固定,车票信息如下:车次、终点站、发车时间、到站时间、票价金额、剩余票数。要求...

求解一道C++程序设计的题目。。(职工信息管理系统)
小弟求诸位高人帮忙解决C++程序设计的问题: 要求一个职工信息管理系统。系统功能如下: 1,创建存储该单位职工信息的存储系统,在第一次输入基本信息时,创建文件将职工信息写入文件。 2,增加职工信息,增加新职工时输入新职工的基本信息并加入文件。 3,删除某职工的基本信息,同时修改文件中相应的内容。 4,修改某职工的...

关于编程大赛的一道题目,一个正整数有可能可以被表示为n(n>=2)个连 ...
再回到这个编程上来: 我们的输入数据其实就是sn,需要找到以a开始的n个连续的递增数列使得和为sn。 这里我们可以用循环来判定,给定一个n,sn已知,就可以求出a,如果a为正整数那么就可以找到等差数列的首项,加上n给定,d=1,那么就可以写出这个和式子。 代码如下: #include<stdio.h> void main() { int input,...

...问题请看问题补充! 急急急!!谢谢高手们的回答!!!
int abs(int n){ return n<0?-n:n; \/\/绝对值 } int zzx_wf(char p[])\/\/求出寄居蟹完全吻合的字串 { int i;for(i=0; p[i]!='\\0'; i++)p[i]=abs(p[i]-'A'-25)+'A';return 0;} int check(char hk[],char p[])\/\/检查字串是否被包含在海葵中 { int i,j,k...

...很急的,麻烦各位高手能帮忙做一下,谢谢啦。。。 船只
1、渔政船P(X1,Y1),速度V1;可疑船只Q(X2,Y2);最终追上点为R(X3,Y3)PR距离S1=sqrt[(X1-X3)^2+(Y1-Y3)^2];QR距离S2=sqrt[(X2-X3)^2+(Y2-Y3)^2]追踪的路线:PR 追赶时间:T=S1\/V1 2、考虑到渔政船的安全,就只能追击而不能截击。渔政船P(X1,Y1);可疑船只Q...

c编程问题~输出乱码~~求教高手!!··追加随便··
把下面的语句:fwrite(&sumt[n],4,603,fp);修改为:fprintf(fp,"%lf\\t",sumt[n]);因为你以前的语句输出的是机器内部标示,所以查看就称为乱码了。

c语言编程题--0.618法求最小值
首先,在编写程序的时候尽量避免使用GOTO语句。其次,你的题目是否有问题???得不出结果啊,还有你定义的c怎么不使用。我按照你题目的意思编写了一下,但不出结果(死循环)。include<stdio.h> float f(float x){ float y;y=x+10\/x;return(y);} float abvalue(float a,float b){ if(a>...

相似回答
大家正在搜