自学新手,求教函数指针作参数的问题?
问题我已经标在下面程序,希望大大不吝回复。在此谢过。
#include<iostream>#include<stdlib.h>using namespace std;int main(){ int n; double peven(int); double podd(int); double scall(double,int); cout<<"Please input a number:"; cin>>n; if(n==1) { cout<<"Input a wrong number!"; abort(); } double sum=0; if(n%2==0) { sum=scall(peven,n); //错误:不能将‘double scall(double, int)’的实参‘1’从‘double (*)(int)’转换到‘double’ } else { sum=scall(podd,n); //同上错误 } cout<<"The sum of numbers:"<<sum<<endl; return 0;}double peven(int n){ double s; int i; s=0; for(i=2;i<=n;i+=2) s+=1/(double)i; return(s);}double podd(int n){ double s; int i; s=0; for(i=1;i<=n;i+=2) s+=1/(double)i; return(s);}double (*f)(int n);double scall(double (*f)(int),int n) //这里该怎么定义?{ double s=0; s=(*f)(n); return s;}#include<iostream>#include<stdlib.h>using namespace std;double peven(int n){ double s; int i; s=0; for(i=2;i<=n;i+=2) s+=1/(double)i; return(s);}double podd(int n){ double s; int i; s=0; for(i=1;i<=n;i+=2) s+=1/(double)i; return(s);}typedef double (*f)(int n);double scall(f ff,int n) //这里该怎么定义?{ double s=0; s=(*ff)(n); return s;}int main(){ int n; //double peven(int); //double podd(int); //double scall(double,int); cout<<"Please input a number:"; cin>>n; if(n==1) { cout<<"Input a wrong number!"; abort(); } double sum=0; if(n%2==0) { sum=scall(peven,n); //错误:不能将‘double scall(double, int)’的实参‘1’从‘double (*)(int)’转换到‘double’ } else { sum=scall(podd,n); //同上错误 } cout<<"The sum of numbers:"<<sum<<endl; system("pause"); return 0; }