| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 553 人关注过本帖
标题:一个递归函数的修改
只看楼主 加入收藏
順哥哥orz
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-4-20
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
一个递归函数的修改
#include "stdio.h"
long ff(int n)
{
    long f;
    if(n<0)
    printf("n<0,input error");
    else if(n==0||n==1)
    f=1;
    else
    f=ff(n-1)*n;
    return(f);
}
void main()
{
    int n;
    long y;
    printf("\ninput a inteager number:\n");
    scanf("%d",&n);
    y=ff(n);
    printf("%d!=%ld",n,y);
}


这是用递归求一个整数的阶乘,照这个程序敲出来的话,输入一个负数也有阶乘输出,这个该怎么改啊?只在被调函数里改哦。。
搜索更多相关主题的帖子: 递归 函数 
2010-05-01 16:15
ychf890225
Rank: 4
等 级:业余侠客
帖 子:85
专家分:221
注 册:2010-4-15
收藏
得分:10 
#include "stdio.h"
long ff(int n)
{
    long f;
    if(n<0)
    f=0;
    else if(n==0||n==1)
    f=1;
    else
    f=ff(n-1)*n;
    return(f);
}
void main()
{
    int n;
    long y;
    printf("\ninput a inteager number:\n");
    scanf("%d",&n);
    y=ff(n);
    if(y==0)
    printf("n<0,input error\n");
    else
    printf("%d!=%ld",n,y);
}

你这个是需要用到被调函数的返回值的,所以打印错误提示也需要一个返回值
2010-05-01 16:20
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
收藏
得分:0 
2楼的解释很到位

Discuz!  
好好学习  天天向上
2010-05-01 16:49
呜呼哀哉
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-02 18:28
快速回复:一个递归函数的修改
数据加载中...
 
   



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

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