| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 709 人关注过本帖
标题://关于变量修饰符的一点体会...
只看楼主 加入收藏
阿扁
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-8-31
收藏
 问题点数:0 回复次数:7 
//关于变量修饰符的一点体会...

做了一个从1到100的累加...

#include <stdio.h>
int main(void)
{

int a=0,b;

for (b=1;b<101;++b)
a+=b;

printf (" 结果 a=%i \n",a);

return 0;
}

联想到
从1到100的累积...

#include <stdio.h>
int main(void)
{

int a=1,b;

for (b=1;b<101;++b)
a*=b;

printf (" 结果 a=%i \n",a);

return 0;
}

却发现结果为0...

修改后

#include <stdio.h>
int main(void)
{

long double a=1,b;

for (b=1;b<101;++b)
a*=b;

printf (" 结果 a=%e \n",a);

return 0;
}

得出正确结果...

总结:选好适当的变量类型;选好适当的变量修饰符.

搜索更多相关主题的帖子: 变量 体会 
2006-09-21 07:40
cwande
Rank: 2
等 级:新手上路
威 望:3
帖 子:333
专家分:0
注 册:2006-8-18
收藏
得分:0 
结果不精确

汗,都懒得写代码了.......... cheat了一个威望,哈.....
2006-09-21 11:39
zhufeifei
Rank: 1
等 级:新手上路
威 望:2
帖 子:402
专家分:0
注 册:2006-8-11
收藏
得分:0 

我觉得这段程序的效率不高,可以用数学公式n(n+1)/2,这样就好多了.


在不断的拼搏与进取中,定能创造一片天地!
2006-09-21 22:07
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

应该不可以用这个数学公式,如果用了还怎么体现1~100之间的累加呢.

楼主的累积也不对.100!恐怕你也证明不了你的结果是正确的(可能有溢出),况且double精度错了,最起码这个数是个很大的整数.


倚天照海花无数,流水高山心自知。
2006-09-21 22:13
阿扁
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-8-31
收藏
得分:0 

我用matlab数学软件算了..结果是正确的阿...

2006-09-21 23:15
阿扁
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-8-31
收藏
得分:0 
没有问题阿,不然你给我编个代码嘛,版版...好不?嘻嘻~~
2006-09-21 23:16
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

不好意思,可能写不出来.
我按照你的程序测试了一下,结果是: ╜ß╣√ a=-1.71024e+123
但我知道100!面应该有100(25*4) 95 90 85 80 75(25*2) 70 65 60 55 50(25*2) 45 40 35 30 25 20 15 10 5
这样应该有24个0,而且你的有效位数保留到0.00001

倚天照海花无数,流水高山心自知。
2006-09-21 23:49
zhufeifei
Rank: 1
等 级:新手上路
威 望:2
帖 子:402
专家分:0
注 册:2006-8-11
收藏
得分:0 

版主好厉害!


在不断的拼搏与进取中,定能创造一片天地!
2006-09-28 21:31
快速回复://关于变量修饰符的一点体会...
数据加载中...
 
   



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

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