搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 超简单的程序,求解!
标题:
超简单的程序,求解!
只看楼主
You0
等 级:
论坛游民
帖 子:29
专家分:63
注 册:2014-8-2
结帖率:
87.5%
楼主
已结贴
√
问题点数:10 回复次数:7
超简单的程序,求解!
#include<stdio.h>
int main(void)
{
int m,i,n;
double p;
scanf("%d",&m);
for(i=0;i<m;i++)
{
scanf("%d",&n);
p=(2/n)*(1/(n-1));
printf("%lf\n",p);
}
}
输入3的时候printf的p就是 0了,为什么? 要如何修改?
搜索更多相关主题的帖子:
double
2014-09-26 18:11
wssy213
来 自:湖南
等 级:
贵宾
威 望:
10
帖 子:967
专家分:3703
注 册:2014-6-6
第
2
楼
得分:2
p=(2/n)*(1/(n-1));
改为p=(2.0/n)*(1.0/(n-1));试试
坚持----------------------------------唯一的道路
shit ! ! !
2014-09-26 18:52
LD199
来 自:中国
等 级:
论坛游民
帖 子:18
专家分:46
注 册:2013-10-12
第
3
楼
得分:2
同上楼
2014-09-26 19:36
erty1001
等 级:
蜘蛛侠
威 望:
4
帖 子:331
专家分:1433
注 册:2014-8-31
第
4
楼
得分:2
简单说说:
正如楼上二位所言,
我估计是问题对于楼主来说应该是新手不熟悉C语言造成的。其实不是什么大问题
一定要了解,C语言的基础数据类型是整形,所以/除法运算 是优先匹配整形的计算公式的
下次遇到浮点型的数据做除法运算,一定要使分子或者分母上出现浮点类型的。
你的原题可以写成这样 p=(2.0/(n*(n-1));
2014-09-26 20:25
豪仔仔
等 级:
新手上路
帖 子:4
专家分:4
注 册:2014-9-26
第
5
楼
得分:2
比如1/2,分子分母都是int类型,那么结果就是int类型,0,把分子改成double类型,那么结果就是double类型,0.5,这是一种默认的转换
2014-09-26 20:32
fl8962
等 级:
贵宾
威 望:
14
帖 子:539
专家分:2471
注 册:2012-10-17
第
6
楼
得分:2
回复 楼主 You0
/ 是什么,取整。
想抽苏烟了。
2014-09-26 21:16
fogmaple
来 自:江西省赣州市于都县
等 级:
业余侠客
威 望:
1
帖 子:119
专家分:233
注 册:2014-7-28
第
7
楼
得分:2
以下是引用
wssy213
在2014-9-26 18:52:03的发言:
p=(2/n)*(1/(n-1));
改为p=(2.0/n)*(1.0/(n-1));试试
试试就知道
2014-09-27 13:19
悟也执迷
等 级:
新手上路
帖 子:2
专家分:2
注 册:2014-9-27
第
8
楼
得分:2
这个够清楚了。
以下是引用
erty1001
在2014-9-26 20:25:11的发言:
所以/除法运算 是优先匹配整形的计算公式的
下次遇到浮点型的数据做除法运算,一定要使分子或者分母上出现浮点类型的。
你的原题可以写成这样 p=(2.0/(n*(n-1));
2014-09-27 22:16
8
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-436635-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.685870 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved