| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1372 人关注过本帖
标题:求1!+2!+……+10!,不知道是哪里错了,求高手指点!
只看楼主 加入收藏
yz1025
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:491
专家分:919
注 册:2012-10-26
收藏
得分:0 
我记得你若是不写Function header
就必须把main()放在.cpp的最下面
不然程序运行到s=f(n);时会有问题.
不然你就要把程序中所有Function
都事先在最上面先做声明...

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

不要投我
2013-03-07 21:39
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用yz1025在2013-3-7 21:39:28的发言:

我记得你若是不写Function header
就必须把main()放在.cpp的最下面
不然程序运行到s=f(n);时会有问题.
不然你就要把程序中所有Function
都事先在最上面先做声明...
 
 

有函数原型不必main()在后的。
收到的鲜花
  • yz10252013-03-08 10:18 送鲜花  5朵   附言:又学到一招~

授人以渔,不授人以鱼。
2013-03-07 22:01
woailuo2010
Rank: 2
等 级:论坛游民
帖 子:27
专家分:19
注 册:2013-3-1
收藏
得分:0 
程序 可以用,楼主是想改进????

错过的青春,我用行动补回来!
2013-03-07 22:27
dengluoy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:127
专家分:165
注 册:2013-2-5
收藏
得分:0 
这个和编译环境有关系。你用的VC++6.0还是,?

一同学习, 一同进步
2013-03-07 22:35
yz1025
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:491
专家分:919
注 册:2012-10-26
收藏
得分:0 
以下是引用TonyDeng在2013-3-7 22:01:47的发言:


有函数原型不必main()在后的。


Sorry...没注意看到原型写在main()里面。
不过原型我习惯都是写在.h档里~毕竟不是学校在写作业~函式不可能只有一个~
所以全都要写在main()里面感觉蛮乱的~原来原型宣告可以写在main()里面~
又学到一招~

不要投我
2013-03-08 10:17
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
函数声明写在函数体中,那是K&R时代原始的语法,意图与自动变量一样声明自动函数,但C语言的设计本身不支持这种方式,所以这样写是不能达到目的的。但编译器一般仍然支持这种旧式语法,不过并不建议这种写法。

授人以渔,不授人以鱼。
2013-03-08 10:26
逆风而前
Rank: 7Rank: 7Rank: 7
来 自:福建
等 级:黑侠
威 望:7
帖 子:193
专家分:567
注 册:2013-2-14
收藏
得分:0 
#include<stdio.h>
void main(){
    int f(int p);
    int n , s;
    scanf("%d",&n);
    s=f(n);
    printf("s=%d\n",s);
}
int f(int p){
    int m=1,s=0;
    int i;
    for(i=1;i<=p; i++){
        m=m*i;
        s=s+m;
    }
    return (s);
}
2013-03-08 13:57
未微电子
Rank: 2
来 自:丹霞地貌
等 级:论坛游民
帖 子:47
专家分:57
注 册:2013-2-24
收藏
得分:0 
没错啊。。大哥
另外,1!+2!+……+10!的值有时会很大,最好把变量设为double,万无一失。

失信于一人,才跌入凄凉的境界。
2013-03-09 10:19
wuxianqin007
Rank: 1
等 级:新手上路
帖 子:8
专家分:6
注 册:2013-3-9
收藏
得分:0 
for(int i = 1;i<=p; i++)改为int i;for( i = 1;i<=p; i++)要注意规范,不要指望编译器兼容
2013-03-09 19:25
Merry_sf
Rank: 2
等 级:论坛游民
帖 子:30
专家分:24
注 册:2012-12-9
收藏
得分:0 
编译器不支持C99   变量声明都要搞到函数体一开始  
2013-03-09 19:41
快速回复:求1!+2!+……+10!,不知道是哪里错了,求高手指点!
数据加载中...
 
   



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

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