在这个执行计算的函数中,只定义了三个形参的类型,但是却没有定义接收实参值的实际变量。而在下面定义的两个整型变量和一个字符变量都没有能够获得值,(原本它们应该是从形式参数表中接受初始值的)另外,这个函数在执行的过程中直接输出计算的结果,但是最后的返回值却是写了返回0,那么这个返回的0就会在主函数中调用时被直接输出,也就是说输出一个0。
下面已经把这个程序做了修改,请查阅修改后的源代码和运行的结果。
另外,这个程序没有对除数为零做出检测,除非要能够确保输入的除数是不等于0的。
#include
using namespace std;
int evaluate(int n1,int n2,char oper)
{ if(oper='+')
return n1+n2;
else if(oper='-')
return n1-n2;
else if(oper='*')
return n1*n2;
else if(oper='/')
return n1/n2;
else if(oper='%')
return n1%n2;
}
int main()
{ int num1,num2;
char oper;
cin>>num1>>num2>>oper;
cout<
return 0;
}
#include
using namespace std;
int evaluate(int n1,int n2,char oper) { int b; //不要急于在函数中输出,应当返回结果值
if ( oper=='+' ) b=n1+n2; //两个等号是逻辑判断,一个是赋值
else if ( oper=='-' ) b=n1-n2;
else if ( oper=='*' ) b=n1*n2;
else if ( oper=='/' ) b=( n2==0 )?(0):(n1/n2);
else if ( oper=='%' ) b=n1%n2;
return b;
}
int main(){ int num1,num2; char oper,s[20];
cin>>num1>>num2>>s; oper=s[0];
cout< return 0; }