在這個執行計算的函數中,只定義了三個形參的類型,但是卻沒有定義接收實參值的實際變量。而在下面定義的兩個整型變量和壹個字符變量都沒有能夠獲得值,(原本它們應該是從形式參數表中接受初始值的)另外,這個函數在執行的過程中直接輸出計算的結果,但是最後的返回值卻是寫了返回0,那麽這個返回的0就會在主函數中調用時被直接輸出,也就是說輸出壹個0。
下面已經把這個程序做了修改,請查閱修改後的源代碼和運行的結果。
另外,這個程序沒有對除數為零做出檢測,除非要能夠確保輸入的除數是不等於0的。
#include <iostream>
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<<num1<<oper<<num2<<"="<<evaluate(num1,num2,oper)<<endl;
return 0;
}