| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 431 人关注过本帖
标题:指针问题!没人会改吗?也许没有
只看楼主 加入收藏
低调的哥额
Rank: 2
来 自:四川广安
等 级:论坛游民
帖 子:49
专家分:30
注 册:2012-6-6
结帖率:100%
收藏
 问题点数:0 回复次数:9 
指针问题!没人会改吗?也许没有
#include "stdio.h"
int fac(int n)
{  static f=1;
   f=f*n;
   return f;

    }
main()
{  int fac(int n);
   int i,n;
   printf("n=");
   scanf("%d",&n);
   for(i=1;i<=n;i++)
    {   printf("%d!= %d\n",i,fac(i));

    }

        getch();
    }
   怎么在原代码的基础上加上个求怎么改下 添加求1!+2!+3!+...+n!=?我的思路是把fac(i);放在一个指针里面 怎么改
注意在原题基础上!!!



搜索更多相关主题的帖子: include return 
2012-11-22 00:29
低调的哥额
Rank: 2
来 自:四川广安
等 级:论坛游民
帖 子:49
专家分:30
注 册:2012-6-6
收藏
得分:0 
我这样改为什么错了#include "stdio.h"

#include   "stdio.h"
int fac(int n)
{ static f=1;
   f=f*n;
   return f;

    }
main()
{  int fac(int n);
   int i,n,sum=0;

   printf("n=");
   scanf("%d",&n);
   for(i=1;i<=n;i++)
    {   printf("%d!= %d\n",i,fac(i));
        sum=sum+fac(i);
    }


        printf("%d",sum);

        getch();
    }  



怎么改啊 ,最好用指针

目标→黑客←努力 qq群281123877,讨论 奋斗!
2012-11-22 00:32
低调的哥额
Rank: 2
来 自:四川广安
等 级:论坛游民
帖 子:49
专家分:30
注 册:2012-6-6
收藏
得分:0 
没人会吗

目标→黑客←努力 qq群281123877,讨论 奋斗!
2012-11-22 00:43
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:0 
我了个去,你都会用static来求阶乘了,难道不会添加一个这么简单的功能啊?

话说你2l的代码好像没错的

[ 本帖最后由 czz5242199 于 2012-11-22 00:54 编辑 ]
2012-11-22 00:53
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:0 
大哥,你是不是想用函数指针啊?那你就多看看关于函数指针的用法。
下面第一种使用函数指针实现的:
/*1!+2!+3!+......+n!*/
#include<stdio.h>
int fun(int n)
{
        static int f=1;
        f=f*n;
        return f;
}
int main()
{
        int (*p)(int)=fun;
        int i,n,sum=0;
        printf("n=");
        scanf("%d",&n);
        for(i=1;i<=n;i++)
        {
                sum=sum+(*p)(i);
        }
        for(i=1;i<n;i++)
        {
                printf("%d!+",i);
        }
        printf("%d!=%d\n",n,sum);
        return 0;
}
第二种是用一般的函数调用实现的:
/*1!+2!+3!+......+n!*/
#include<stdio.h>
int fun(int n)
{
        static int f=1;
        f=f*n;
        return f;
}
int main()
{
        int n,sum=0,i;
        printf("n=");
        scanf("%d",&n);
        for(i=1;i<=n;i++)
        {
                sum=sum+fun(i);
        }
        for(i=1;i<n;i++)
        {
                printf("%d!+",i);
        }
        printf("%d!=%d\n",n,sum);
        return 0;
}
注意两者的不同之处!

[ 本帖最后由 小小战士 于 2012-11-22 01:38 编辑 ]

小小战士,战士中的战斗机!
2012-11-22 01:26
低调的哥额
Rank: 2
来 自:四川广安
等 级:论坛游民
帖 子:49
专家分:30
注 册:2012-6-6
收藏
得分:0 
回复 4楼 czz5242199
我2楼代码好像不行啊

目标→黑客←努力 qq群281123877,讨论 奋斗!
2012-11-22 01:37
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:0 
以下是引用低调的哥额在2012-11-22 01:37:54的发言:

我2楼代码好像不行啊

不是不行,是有一点问题,你多调用了一次fac(i),这样改:
#include   "stdio.h"
int fac(int n)
{
   static f=1;
   f=f*n;
   return f;
}
main()
{  //int fac(int n);
   int i,n,h,sum=0;
   printf("n=");
   scanf("%d",&n);
   for(i=1;i<=n;i++)
   {
        h=fac(i);
        printf("%d!= %d\n",i,h);
        sum=sum+h;

    }
        printf("%d\n",sum);
}

[ 本帖最后由 小小战士 于 2012-11-22 01:53 编辑 ]

小小战士,战士中的战斗机!
2012-11-22 01:51
低调的哥额
Rank: 2
来 自:四川广安
等 级:论坛游民
帖 子:49
专家分:30
注 册:2012-6-6
收藏
得分:0 
回复 5楼 小小战士
哦, 明白了,谢谢,但是怎么分别把1!=?2!=? 3!=? 和1!+2!+3!+n!=? 同时输出啊
程序代码:

#include<stdio.h>
int fun(int n)
{
        static int f=1;
        f=f*n;
        return f;
}
int main()
{
        int (*p)(int)=fun;
        int i,n,sum=0;
        printf("n=");
        scanf("%d",&n);

       for(i=1;i<=n;i++)
        {
                sum=sum+(*p)(i);

              printf("%d!= %d\n",i,(*p)(i));  //我直接在这加一句,但是运行的时候值变完了,怎么办啊
        }
        for(i=1;i<n;i++)
        {

                printf("%d!+",i);
        }
        printf("%d!=%d\n",n,sum);
       getch();
}


目标→黑客←努力 qq群281123877,讨论 奋斗!
2012-11-22 01:56
低调的哥额
Rank: 2
来 自:四川广安
等 级:论坛游民
帖 子:49
专家分:30
注 册:2012-6-6
收藏
得分:0 
哦 明白了,谢谢

目标→黑客←努力 qq群281123877,讨论 奋斗!
2012-11-22 02:07
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:0 
以下是引用低调的哥额在2012-11-22 01:56:50的发言:

哦, 明白了,谢谢,但是怎么分别把1!=?2!=? 3!=? 和1!+2!+3!+n!=? 同时输出啊

#include<stdio.h>
int fun(int n)
{
        static int f=1;
        f=f*n;
        return f;
}
int main()
{
        int (*p)(int)=fun;
        int i,n,sum=0;
        printf("n=");
        scanf("%d",&n);

       for(i=1;i<=n;i++)
        {
              sum=sum+(*p)(i);
              printf("%d!= %d\n",i,(*p)(i));  //你这样又是用指针多调用了一次,值能打印出来,但是错的值,看下面修改后
        }                                               }
        for(i=1;i<n;i++)
        {
                printf("%d!+",i);
        }
        printf("%d!=%d\n",n,sum);
        getch();
}

修改后:
#include<stdio.h>
int fun(int n)
{
        static int f=1;
        f=f*n;
        return f;
}
int main()
{
        int (*p)(int)=fun;
        int i,n,sum=0,h;
        printf("n=");
        scanf("%d",&n);

        for(i=1;i<=n;i++)
        {
                h=(*p)(i);//应该用一个变量保存,不要再多次调用了
                printf("i!=%d\n",h);
                sum=sum+h;

        }
        for(i=1;i<n;i++)
        {
                printf("%d!+",i);
        }
        printf("%d!=%d\n",n,sum);
       getch();//这个只是用于暂停一下
}

小小战士,战士中的战斗机!
2012-11-22 02:18
快速回复:指针问题!没人会改吗?也许没有
数据加载中...
 
   



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

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