64,639
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
using namespace std;
double add(double m ,double n);
double subtract(double,double);
double multiply(double,double);
double divid(double,double);
char type[10];
double calculate(double,double,double(*pf)(double,double));
int main() {
double m, n;
double(*pf[4])(double,double) = {add, subtract, multiply, divid};
char oper[4][4] = {"加", "减", "乘", "除"};
int choice = -1;
cout<<"请输入要计算的类型";
gets(type);
for(int i=0; i<4; i++){
if(strcmp(type, oper[i])==0) {
choice = i;
break;
}
}
if(choice != -1) {
cin >> m >> n;
cout << calculate(m, n, pf[choice]) << endl;
} else {
cout << "计算类型错误!" << endl;
}
return 0;
}
double add(double m, double n) {
return m + n;
}
double subtract(double m, double n) {
return m - n;
}
double multiply(double m, double n) {
return m * n;
}
double divid(double m, double n) {
return m / n;
}
double calculate(double m, double n, double (*pf)(double, double)) {
return pf(m, n);
}
#include<iostream>
using namespace std;
double add(double m ,double n);
double subtract(double,double);
double multiply(double,double);
double divid(double,double);
char type[10];
double calculate(double,double,double(*pf)(double,double));
int main()
{
double m,n;
int a;
cout<<"请输入要计算的类型";
gets(type);
if(strcmp(type,"加")==0)
{
cin>>m>>n;
cout<<calculate(m,n,add);
}
else if(strcmp(type,"减")==0)
{cin>>m>>n;
cout<<calculate(m,n,subtract);
}
else if(strcmp(type,"乘")==0)
{cin>>m>>n;
cout<<calculate(m,n,multiply);
}
else if(strcmp(type,"除")==0)
{cin>>m>>n;
cout<<calculate(m,n,divid);
}
else cout<<"错误?";
return 0;
}
double add(double m,double n)
{
return (m+n);
}
double subtract(double m,double n)
{
return (m-n);
}
double multiply(double m,double n)
{
return (m*n);
}
double divid(double m,double n)
{
return (m/n);
}
double calculate(double m,double n,double (*pf)(double,double))
{
if(pf==add)//if语句都错了,是==不是=
return add(m,n);
if(pf==subtract)
return subtract(m,n);
if(pf==multiply)
return multiply(m,n);
if(pf==divid)
return divid(m,n);
}