本应该输入算式后计算出它的结果后返回结果,但实际:
如是加减运算:输入一个算式时只返回算式中的第一个值,(如:23+3本该返回26,实际返回23)
如是乘运算:永远返回0
如是除运算:程序退出
代码如下:
#include<iostream>
using namespace std;
string type_get, str_empty, str_num1, str_num2;
string to_do = "+-*/";
int empty, i, operator_num, num1, num2;
int flag = 1;//flag=1:运行,flag=0:退出
int add(int num1,int num2)
{
int result;
result = num1 + num2;
return result;
}
int subtract(int num1,int num2)
{
int result;
result = num1 - num2;
return result;
}
int multiply(int num1,int num2)
{
int result;
result = num1 * num2;
return result;
}
int divide(int num1,int num2)
{
int result;
result = num1 / num2;
return result;
}
int main()
{
while(flag)
{
cin >> type_get;
if (type_get == "exit")
{
flag = 0;
}
else
{
operator_num = type_get.find_first_of(to_do);
char array_type_get[type_get.length()];
for (i = 0; i < type_get.length(); i++)
{
array_type_get[i] = type_get[i];
}
for (i = 0; i < operator_num; i++)
{
str_num1[i] = array_type_get[i];
}
for (i = operator_num + 1; i < sizeof(array_type_get); i++)
{
str_num2[i] = array_type_get[i];
}
num1 = atoi(str_num1.c_str());
num2 = atoi(str_num2.c_str());
switch (array_type_get[operator_num])
{
case '+' :
cout << "=" << add(num1,num2) << endl;
break;
case '-' :
cout << "=" << subtract(num1,num2) << endl;
break;
case '*' :
cout << "=" << multiply(num1,num2) << endl;
break;
case '/' :
cout << "=" << divide(num1,num2) << endl;
break;
default :
cout << "请输入一个运算符!" << endl;
break;
}
}
}
/*str_empty = type_get.string::empty;
empty = atoi(str_empty.c_str());*/
/*if (empty = 0)
{
cout << type_get.find_first_of(to_do) << endl;
}
else
{
cout << "请输入一个值!" << endl;
}*/
return 0;
}
测试截图: