#include
using namespace std;
void show(double ()[5],int);
double addition(double,double);
double subtraction(double,double);
double mutiplication(double,double);
double divition(double,double);
void print_result(double()(double,double),double,double);
void print_result(double(ptrCalc)(double,double),double num1,double num2)
{
double result=ptrCalc(num1,num2);
cout<<"运算结果为:"<<result<<endl;
}
double addition(int num1,int num2)
{
return num1+num2;
}
double subtraction(int num1,int num2)
{
return num1-num2;
}
double mutiplication(int num1,int num2)
{
return num1*num2;
}
double divition(int num1,int num2)
{
if(num2==0)
{
cout<<"除数不能为零"<<endl;
return 0;
}
return num1/num2;
}
int main()
{
double (*ptrCalc)(double,double);
double num1,num2;
char op;
cout<<"请输入两个数:";
cin>>num1>>num2;
cout<<"请输入运算符:";
cin>>op;
switch(op)
{
case '+':ptrCalc=addition;
break;
case '-':ptrCalc=subtraction;
break;
case '':ptrCalc=mutiplication;
break;
case '/':ptrCalc=divition;
break;
}
print_result(ptrCalc,num1,num2);
}
你不觉得你上面声明的代码和你定义的不一样嘛,你这个代码有点奇怪 会不会是你main函数是int类型的 最后没有return 0;所以才报错...
供参考:
#include<iostream>
using namespace std;
void show(double (*)[5],int);//?????
double addition(double,double);
double subtraction(double,double);
double mutiplication(double,double);
double divition(double,double);
void print_result(double(*)(double,double),double,double);
void print_result(double(ptrCalc)(double,double),double num1,double num2)
{
double result=ptrCalc(num1,num2);
cout<<"运算结果为:"<<result<<endl;
}
double addition(double num1,double num2)
{
return num1+num2;
}
double subtraction(double num1,double num2)
{
return num1-num2;
}
double mutiplication(double num1,double num2)
{
return num1*num2;
}
double divition(double num1,double num2)
{
if(num2==0)
{
cout<<"除数不能为零"<<endl;
return 0;
}
return num1/num2;
}
int main()
{
double (*ptrCalc)(double,double);
double num1,num2;
char op;
cout<<"请输入两个数:";
cin>>num1>>num2;
cout<<"请输入运算符:";
cin>>op;
switch(op)
{
case '+':ptrCalc=addition;
break;
case '-':ptrCalc=subtraction;
break;
case '*':ptrCalc=mutiplication;
break;
case '/':ptrCalc=divition;
break;
}
print_result(ptrCalc,num1,num2);
return 0;
}