[求助]关于使用指向函数的指针
利用指向函数的指针进行调用;输入N,N为偶数是输出1/1+1/3+1/5+.....+1/N的结果,N为偶数时输出1/2+1/4+1/6+.....+1/N的结果.
我编写的代码如下
double jishu(int n)
{ double a,sum=0;
for(a=1;a<=n;a=a+2)
{sum=sum+1/a;}
}
double oushu(int n)
{ double a,sum=0;
for(a=2;a<=n;a=a+2)
{sum=sum+1/a;}
}
main()
{ int a,b;double c;double (*f1)(int); double (*f2)(int);
scanf("%d",&a);
b=a%2;
f1=jishu;f2=oushu;
if(b==1) c=(*f1)(a);
else c=(*f2)(a);
printf("%f",c);
}
但是无论我输入什么 按回车后均显示 floating point error:domain
希望得到大家的帮忙 谢谢了
----------------解决方案--------------------------------------------------------
double jishu(int n)
{
double a,sum=0;
for(a=1;a<=n;a=a+2)
{sum=sum+1/a;}
return (sum);
}
double oushu(int n)
{
double a,sum=0;
for(a=2;a<=n;a=a+2)
{sum=sum+1/a;}
return (sum);
}
main()
{
int a,b;
double c;
double (*f1)(int);
double (*f2)(int);
scanf("%d",&a);
b=a%2;
f1=jishu;
f2=oushu;
if(b==1) c=(*f1)(a);
else c=(*f2)(a);
printf("%f",c);
system("pause");
}
调用函数无返回值;
楼主疏忽咯
----------------解决方案--------------------------------------------------------
回复:(hawk86104)double jishu(int n) { ...
非常感激 我一个人弄了好久都没找到错误出在哪我现在有个问题
看书的话一看就懂
自己来写的话 一写就错
----------------解决方案--------------------------------------------------------
注重多编程操作~~熟悉编译起~~~其实我也是新手
----------------解决方案--------------------------------------------------------