标题:我是大一新生,有一个编程问题想请教各位大佬
只看楼主
菜鸟sdc
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-6-27
结帖率:0
已结贴  问题点数:20 回复次数:8 
我是大一新生,有一个编程问题想请教各位大佬
编写一个韩束,输入n为偶数时,调用函数1/2+1/4+...+1/n,当输入奇数时,调用函数1/1+1/3+1/5...+1/n(利用指针函数)
搜索更多相关主题的帖子: 大一新生 编程 输入 调用 函数 
2019-06-27 10:03
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:620
专家分:3020
注 册:2011-4-22
得分:5 
你是请教还是卖作业?
2019-06-27 10:16
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:5 
不知道“指针函数”是个什么玩意儿?
这是个不需要思考算法的题目,按要求写出来就行了

#include <stdio.h>

int main( void )
{
    int n;
    scanf( "%d", &n );

    double y = 0;
    for( ; n>0; n-=2 )
        y += 1.0/n;
    printf( "%f\n", y );
}


2019-06-27 10:28
菜鸟sdc
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-6-27
得分:0 
回复 2楼 zbjzbj
请教啊,我指针没学懂。
2019-06-27 20:57
菜鸟sdc
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-6-27
得分:0 
回复 3楼 rjsp
我也弄出来这个,不懂什么叫指针函数,
2019-06-27 20:58
菜鸟sdc
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-6-27
得分:0 
回复 3楼 rjsp
#include<stdio.h>
double *Sum(double*p,int n);
int main()
{
    int n;
    double *p;
   
    printf("输入n: ");
    scanf("%d",&n);
    printf("结果=%0.2lf",p);
   
   
    return 0;
}
double *Sum(double*p,int n)
{
    double s=0.0;
    double i;
    if(n%2==0)
    {
        for(i=2.0;i<=n;i=i+2.0)
            s=s+(1.0/i);
            *p=s;
            
    }
    else
    {
        for(i=1;i<=n;i=i+2)
            s=s+(1.0/i);
            *p=s;
    }
    return (p);
}
我的这个运行结果是0;
2019-06-27 21:34
MJTT
Rank: 2
等 级:论坛游民
威 望:1
帖 子:3
专家分:10
注 册:2019-6-29
得分:5 
#include<stdio.h>
double Sum(int n);
int main()
{
    int n;
    double (*p)(int)=&Sum;  //p是函数指针  指向Sum函数的入口地址

    printf("输入n: ");
    scanf("%d",&n);
    printf("结果=%0.2lf",p(n));

    return 0;
}
double Sum(int n)
{
    double s=0.0;
    double i;
    if(n%2==0)
    {
        for(i=2.0;i<=n;i=i+2.0)
        {
             s=s+(1.0/i);
        }
    }
    else
    {
        for(i=1;i<=n;i=i+2)
        {
            s=s+(1.0/i);
        }
    }
    return (s);
}
是不是你要的结果呢 哈哈
2019-06-29 20:53
MJTT
Rank: 2
等 级:论坛游民
威 望:1
帖 子:3
专家分:10
注 册:2019-6-29
得分:0 
回复 6楼 菜鸟sdc
你这个之所以为0 是因为你输入的n和你的指针p都没有用用到正确的位置,输入n了有啥用?都没有用到哟 哈哈  还有你定义的指针p,用来干嘛了?
2019-06-29 20:55
非牛顿流体
Rank: 1
等 级:新手上路
威 望:1
帖 子:3
专家分:5
注 册:2019-6-29
得分:5 
我觉得可以不用指针吧,因为题目要求简单,直接这么用if分类就好了吧
double sum(int n)
{
    int i,
    double sum=0;
    if(n%2==0)
        for(i=2;i<n;i=i+2)
            sum=sum+1.0/(1.0*i);
        else
        for(i=1;i<=n;i=i+2)
        sum=sum+1.0/(1.0*i);
        return sum;
}
2019-06-29 21:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-495531-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.802603 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved