| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 488 人关注过本帖
标题:简单的函数问题~!望高手解决一下~~~
只看楼主 加入收藏
xiaotutu6000
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:85
专家分:137
注 册:2009-10-30
结帖率:88.89%
收藏
已结贴  问题点数:10 回复次数:7 
简单的函数问题~!望高手解决一下~~~
#include<stdio.h>

int factorial(int num);
void main()
{
    int num;
   
   
    printf("请输入你要求的阶乘数\n");
    scanf("%d",&num);
    while(num<2)
    {
        printf("您输入有误,请从新输入\n");
        scanf("%d",&num);
    }
   
    printf("%d\n",factorial(num));
   
}
int factorial(int num)
{
    int i;
    int sum=1;
    for(i=num;i>0;i--);
    {
        sum*=num;
    }
    //return sum,num;
    //printf("%d\n",sum);
    return sum;
}//输出地值不对~!
搜索更多相关主题的帖子: 函数 
2009-11-08 17:37
小J
Rank: 8Rank: 8
等 级:等待验证会员
威 望:1
帖 子:282
专家分:704
注 册:2009-6-18
收藏
得分:5 
for(i=num;i>0;i--)
    {
        sum*=num;
    }

吧num改成i,你是i在循环,不是num在循环,还有吧for()后面得分号去掉

[ 本帖最后由 小J 于 2009-11-8 17:49 编辑 ]
2009-11-08 17:46
xiaotutu6000
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:85
专家分:137
注 册:2009-10-30
收藏
得分:0 
哦 谢谢了!~
2009-11-08 17:48
aganar
Rank: 1
等 级:新手上路
帖 子:17
专家分:7
注 册:2009-4-4
收藏
得分:5 
你应该将
for(i=num;i>0;i--);
    {
        sum*=num;
    }
for中的sum*=num 修改成 sum+=i;  
因为你每次乘以num,但是num的值始终都没有变化。
2009-11-08 17:49
xiaotutu6000
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:85
专家分:137
注 册:2009-10-30
收藏
得分:0 
啊~!还是不对     返回值有问题
2009-11-08 17:49
ouyangouyang
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:273
专家分:579
注 册:2009-10-8
收藏
得分:0 
应该正确啊,我估计你把注释部分写错了应该是这样的吧\*注释*\

多少恨, 昨夜梦魂中。 还似旧时游上苑, 车如流水马如龙; 花月正春风!
2009-11-08 17:49
小J
Rank: 8Rank: 8
等 级:等待验证会员
威 望:1
帖 子:282
专家分:704
注 册:2009-6-18
收藏
得分:0 
for(i=num;i>0;i--)
    {
        sum*=num;
    }

吧num改成i,你是i在循环,不是num在循环,还有吧for()后面得分号去掉



这是我第二次发了。你一定没仔细看我的贴吧。
2009-11-08 17:53
李若斌
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:219
专家分:184
注 册:2009-9-30
收藏
得分:0 
大概知道你的意思 也知道你想做什么
可我不知道是不是你定义成整形太小了,利用函数调用来做 我写一个 你看看?
#include <stdio.h>
void main( )
{flost fac(float num);
 float num;
 scanf("%1f",&num);
 while(num<2)
 {printf("输入错误,重新输入:\n");
  scanf("%1f",&num);
  }
 printf("%e\n",fac(float num));
}
 float fac(float num)
{ float i=1;
  float sum=1;
  for(;i<=num;i++)
  sum=sum* i;
 return(sum)
}
  不知道这样是对还是不对,各位大哥指点下小弟。

[ 本帖最后由 李若斌 于 2009-11-8 18:06 编辑 ]
2009-11-08 18:04
快速回复:简单的函数问题~!望高手解决一下~~~
数据加载中...
 
   



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

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