一道编程题,急求高手帮忙解决!谢谢啦!
题目如下:在一个教学软件中,需要设计一个计算器,功能如下:使用者在键盘上键入一个算术表达式(如76+12+34=、89-14=、12+56-67=),请编写一个程序分析该...
题目如下:
在一个教学软件中,需要设计一个计算器,功能如下:使用者在键盘上键入一个算术表达式(如76+12+34=、89-14=、12+56-67=),请编写一个程序分析该输入串,并计算机其算术值。
注1:为了简化问题,运算符仅考虑加法和减法,数值为整数,并且不考虑串中可能含有空格等其他符号。
注2:整个算术表达式要作为一个字符串来处理,否则不得分。
请写出具体的编程过程或者解题思路,谢谢!
希望用C语言编程来做!谢谢各位 展开
在一个教学软件中,需要设计一个计算器,功能如下:使用者在键盘上键入一个算术表达式(如76+12+34=、89-14=、12+56-67=),请编写一个程序分析该输入串,并计算机其算术值。
注1:为了简化问题,运算符仅考虑加法和减法,数值为整数,并且不考虑串中可能含有空格等其他符号。
注2:整个算术表达式要作为一个字符串来处理,否则不得分。
请写出具体的编程过程或者解题思路,谢谢!
希望用C语言编程来做!谢谢各位 展开
2个回答
展开全部
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;
}
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;
}
展开全部
#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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询