CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

小弟初学,,,请各位一定要帮忙修改一下,,,感激不禁,,在线等。。

楼主xiaofeng3385(爱情老是缺货,轮也不会轮到我)2003-09-04 19:37:00 在 C/C++ / C语言 提问

问题是利用指针函数:编写一个函数,输入N为偶数是调用函数求1/2+|1/4+...+12/N  
  输入N为奇数时,调用函数求1/1+1/3+....+1/n.  
  ###现在想增加个分数的显示结果,,,,,请帮忙修改···  
   
  #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;  
  }  
  问题点数:0、回复次数:5Top

1 楼xiaofeng3385(爱情老是缺货,轮也不会轮到我)回复于 2003-09-04 19:38:35 得分 0

例如1/1+1/3=4/3这样的显示结果//请帮忙Top

2 楼xiaofeng3385(爱情老是缺货,轮也不会轮到我)回复于 2003-09-04 21:48:02 得分 0

谁帮帮我呀Top

3 楼leechildren(里奥)回复于 2003-09-04 22:04:21 得分 0

#include<stdio.h>  
  #include   <math.h>  
  float   n,x,y,z,a;  
  float   func1(float   z);  
  float   one(float   x);  
  float   two(float   y);  
  void   print(float   a);  
  int   main()  
  {  
    printf("please   enter   a   number:\n");  
    scanf("%f",&n);  
    a=func1(n);  
    print(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;  
  }  
   
  void   print(float   a)     //把a换成分数  
  {  
  float     e=1.0e-8,   m=0.0;  
  int   n=0   ,   k;  
   
  while(1)  
  {  
  m   =   a*(++n);  
  if((fabs(m-(int)m))<e   )  
  {  
  k   =   int(m);  
  break;  
  }  
  if((fabs(m-(int)(m+1)))<e)  
  {  
  k   =   int(m+1);  
  break;  
  }  
  }  
  printf("the   answer   is   %d/%d\n",k,   n);  
  }  
   
  我在.net下运行没问题。Top

4 楼xiaofeng3385(爱情老是缺货,轮也不会轮到我)回复于 2003-09-05 12:44:19 得分 0

我在TC下运行有点问题哦???Top

5 楼leechildren(里奥)回复于 2003-09-05 13:33:35 得分 0

我没有这个环境,   有心而无力了。Top

相关问题

  • 简单的修改问题,初学者。
  • 求救高手,帮帮我这个初学者,不胜感激!!!
  • 大虾,偶初学C,请帮忙```吾将感激涕零```
  • 初学者的菜菜问题,求教----感激!!!!
  • 初学者!!!!再线等!!!
  • 关于数据库修改的一点初学者问题?
  • 初学者关于用API修改游戏的提问
  • 初学者 问关于修改的一个问题
  • 初学者急问:如何修改已经做好的软件?
  • 初学者!程序出错,请大家帮助修改!

关键词

  • 函数
  • float
  • func
  • printf

得分解答快速导航

  • 帖主:xiaofeng3385

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo