小弟初学,,,请各位一定要帮忙修改一下,,感激不尽!!!

xiaofeng3385 2003-08-24 05:53:26
问题是利用指针函数:编写一个函数,输入N为偶数是调用函数求1/2+|1/4+...+12/N
输入N为奇数时,调用函数求1/1+1/3+....+1/n.
编译器上显示好像有ill floating 的毛病..

#include<stdio.h>
float n,x,y,z,a;
float func1(float z);
float one(float x);
float two(float y);
int main()
{
printf("please enter a number:\n");
scanf("%f",&n);
a=func1(n);
printf("the answer is %f",a);
return 0;
}
float function(float z)
{
void (*func0) (void);
if (z%2==0)
func0=one;
else
func0=two;
}
float one(float x)
{float i,xone,b=0;
for(i=1;i<=(x/2);i++)
{xone=b+1/(2*i);
a=xone;}
return xone;
}
float two(float y)
{float j,ytwo,c=0;
for(j=1;j<=(y+1)/2;j++)
{ytwo=c+1/(2*j-1);
c=ytwo;}
return ytwo;
}
...全文
39 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hlovew87 2003-08-24
  • 打赏
  • 举报
回复
#include<stdio.h>
float n,x,y,z,a;
float func1(float z);
float one(float x);
float two(float y);
int main()
{
printf("please enter a number:\n");
scanf("%f",&n);
a=func1(n);
printf("the answer is %f\n",a);
return 0;
}
float func1(float z)
{
float (*func0)(float); //有返回值,有参数
if ((int)z%2==0)
func0=one;
else
func0=two;
return (*func0)(z);
}
float one(float x)
{float b=0,i;
for(i=1;i<=(x/2);i++)
b+=(float)1/(2*i);
return b;
}
float two(float y)
{float c=0,j;
for(j=1;j<=(y+1)/2;j++)
c+=(float)1/(2*j-1);
return c;
}
xiaofeng3385 2003-08-24
  • 打赏
  • 举报
回复
谢谢两位的帮助!!
Dragon132 2003-08-24
  • 打赏
  • 举报
回复
#include<stdio.h>
float n,x,y,z,a;
float func1(float z);
float one(float x);
float two(float y);
int main()
{
printf("please enter a number:\n");
scanf("%f",&n);
a=func1(n);
printf("the answer is %f\n",a);
return 0;
}
float func1(float z)
{
float (*func0)(float); //有返回值,有参数
if ((int)z%2==0)
func0=one;
else
func0=two;
return (*func0)(z);
}
float one(float x)
{float b=0,i;
for(i=1;i<=(x/2);i++)
b+=(float)1/(2*i);
return b;
}
float two(float y)
{float c=0,j;
for(j=1;j<=(y+1)/2;j++)
c+=(float)1/(2*j-1);
return c;
}
aflyinghorse 2003-08-24
  • 打赏
  • 举报
回复
#include <stdio.h>
float n,x,y,z,a;
float func1(float z);
float one(float x);
float two(float y);
int main()
{
printf("please enter a number:\n");
scanf("%f",&n);
a=func1(n);
printf("the answer is %f",a);
return 0;
}
float func1(float z)
{
float (*func0) (float);
if (int(z)%2==0)
func0=one;
else
func0=two;
(*func0)(z);
}
float one(float x)
{float i,xone,b=0;
for(i=1;i<=(x/2);i++)
{xone=b+1/(2*i);
a=xone;}
return xone;
}
float two(float y)
{float j,ytwo,c=0;
for(j=1;j<=(y+1)/2;j++)
{ytwo=c+1/(2*j-1);
c=ytwo;}
return ytwo;
}

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧