
1个回答
2013-04-19
展开全部
#include <iostream>
#include <string>
using namespace std;int main(void){
bool IsNotOpera(const char c);
string sInput;
cin >> sInput;
double d1, d2, sum;
string s1, s2;
char _operator = NULL;
for (size_t len = 0; len != sInput.length(); ++len)
if (_operator == NULL && IsNotOpera(sInput.at(len)))
s1 += sInput.at(len);
else if (_operator != NULL)
s2 += sInput.at(len);
else if (!IsNotOpera(sInput.at(len)))
_operator = sInput.at(len);
d1 = atof(s1.c_str());
d2 = atof(s2.c_str());
switch (_operator){
case '+':
sum = d1 + d2;
break;
case '-':
sum = d1 - d2;
case '*':
sum = d1 * d2;
break;
case '/':
if (d2 != 0)
sum = d1 / d2;
else{
cout << "ERROR" << endl;
return 1;
}
break;
}
cout << sum << endl;
system("PAUSE>NUL");
return 0;
}bool IsNotOpera(const char c){
// 判断是否有 + - * /
if (c != '+' && c != '-' && c != '*' && c != '/')
return true;
else
return false;
}
#include <string>
using namespace std;int main(void){
bool IsNotOpera(const char c);
string sInput;
cin >> sInput;
double d1, d2, sum;
string s1, s2;
char _operator = NULL;
for (size_t len = 0; len != sInput.length(); ++len)
if (_operator == NULL && IsNotOpera(sInput.at(len)))
s1 += sInput.at(len);
else if (_operator != NULL)
s2 += sInput.at(len);
else if (!IsNotOpera(sInput.at(len)))
_operator = sInput.at(len);
d1 = atof(s1.c_str());
d2 = atof(s2.c_str());
switch (_operator){
case '+':
sum = d1 + d2;
break;
case '-':
sum = d1 - d2;
case '*':
sum = d1 * d2;
break;
case '/':
if (d2 != 0)
sum = d1 / d2;
else{
cout << "ERROR" << endl;
return 1;
}
break;
}
cout << sum << endl;
system("PAUSE>NUL");
return 0;
}bool IsNotOpera(const char c){
// 判断是否有 + - * /
if (c != '+' && c != '-' && c != '*' && c != '/')
return true;
else
return false;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |