| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1770 人关注过本帖, 2 人收藏
标题:指针、递归方法
只看楼主 加入收藏
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:0 
不是递归。。。。和你题目不太符合。。。

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2013-12-05 16:08
BlackTrace
Rank: 2
等 级:论坛游民
帖 子:16
专家分:22
注 册:2013-12-5
收藏
得分:0 
我试试
2013-12-05 16:28
qq1274371820
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2013-11-24
收藏
得分:0 
回复 11楼 so_love


                 
   

                 要的就是递归啊。。。

自定义人生。。。
2013-12-05 16:39
一只小狼
Rank: 1
来 自:辽宁沈阳
等 级:新手上路
帖 子:5
专家分:8
注 册:2013-12-2
收藏
得分:0 
用指针的没整出来。不过楼主你这程序好像有点逻辑错误。
#include<stdio.h>
int mult(int n)
{
    int result;
    if(n==1)
        result=1;
    else
        result=mult(n-1)*(n);
    return result;
}
int main()
{
    int n,sum=0,i;//x=1;
    printf("输入一个整数:");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
    //    x=x*i;
        sum=sum+mult(i);不能把 n 作为实参传到mult 函数中吧。这样执行一次for循环,mult 函数就求一次 n的阶乘,sum每次加的也是 n的阶乘,这样不能实现1!+2!+。。。n!。楼主看看吧
    }
    printf("1!+...%d!=%d",n,sum);
    putchar('\n');
    return 0;
 }
2013-12-05 16:42
BlackTrace
Rank: 2
等 级:论坛游民
帖 子:16
专家分:22
注 册:2013-12-5
收藏
得分:3 
搞定没楼主,我这里好了,你看看,#include<stdio.h>
int mult(int *n)
{
    int i;
    if(*n ==  1)
        return 1;
    else
        i = *n;
        (*n)--;
        return  (i) * mult(n);
   
   
}
int main()
{
    int n,s;
    printf("输入一个整数:");
    scanf("%d",&n);
    s = n;
    printf("1!+...%d!=%d",s,mult(&n));
    putchar('\n');
    return 0;
}
2013-12-05 16:44
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:0 
回复 13楼 qq1274371820
只是递归。。。没用上指针,。。纠结中。
需要的话 可以给你看看。。

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2013-12-05 17:04
qq1274371820
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2013-11-24
收藏
得分:0 
回复 15楼 BlackTrace



                算错了呀。。。
                 算出来答案不对
                我试过了。。。

自定义人生。。。
2013-12-05 17:06
qq1274371820
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2013-11-24
收藏
得分:0 
回复 16楼 so_love


           这个我也很纠结

自定义人生。。。
2013-12-05 17:09
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:6 
#include<stdio.h>
int mult(int *n)
{
    int m;
    m=*n-1
    int result;
    if(*n==1)
        result=1;
    else
        result=mult(&m)*(*n);
    return result;
}
int main()
{
    int n,sum=1,i,x=1,m;
    printf("输入一个整数:");
    scanf("%d",&n);
    m=n;
    for(i=1;i<=m;i++)
    {
        sum=sum+mult(&n);
        n--;
    }
    printf("1!+...%d!=%d",m,sum);
    putchar('\n');
    return 0;
}
你继续纠结吧。。。

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2013-12-05 17:13
qq1274371820
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2013-11-24
收藏
得分:0 
回复 19楼 so_love


           可以了可以了!!!
            但是我想问一下:
              
      #include<stdio.h>
 int mult(int *n)
 {
     int m;
     m=*n-1;              //这里        *n-1   是什么意思呢?
     int result;
     if(*n==1)
         result=1;
     else
         result=mult(&m)*(*n);    //额,还有这里
     return result;
 }      

自定义人生。。。
2013-12-05 17:36
快速回复:指针、递归方法
数据加载中...
 
   



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

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