标题:为什么得不到正确结果??
只看楼主
卡卡罗特wang
Rank: 2
来 自:湖北武汉
等 级:论坛游民
帖 子:63
专家分:42
注 册:2012-2-17
得分:0 
回复 楼主 wtwj1314
我知道了,你下面函数体中的while错了,应该是{s=1;s*=x;i++}
2012-02-21 08:54
ljl123970
Rank: 2
等 级:论坛游民
帖 子:31
专家分:42
注 册:2012-1-30
得分:3 
以下是引用卡卡罗特wang在2012-2-21 08:54:30的发言:

我知道了,你下面函数体中的while错了,应该是{s=1;s*=x;i++}
楼主的while是有误,但s的初始赋值应该在while循环外面  


i=1;s=x;
while(i<n)
{s*=x;i++;}

2012-02-21 11:19
ljl123970
Rank: 2
等 级:论坛游民
帖 子:31
专家分:42
注 册:2012-1-30
得分:0 
以下是引用wtwj1314在2012-2-20 20:57:51的发言:

值并没有超越float的范围啊,加不加应该查不多吧?恩,我试一下吧,谢了
测试了 类型不对应会出错
2012-02-21 11:23
wtwj1314
Rank: 1
等 级:新手上路
帖 子:14
专家分:5
注 册:2012-2-14
得分:0 
感谢各位,是因为f前没加l,但while那地方还是不明白,怎么结果多乘了一次.
int i=1;
while(i<=n)
{
 s=x; x=x*x; i++;
}
按我的算法例如当n=1时,
执行s=x; x=x*x; i++; 此时i=2,便不会循环了.
按说x=x*x的值没赋给s,s应该等与x,怎么结果是s=x*x???
忘了说了,我这个程序目的只是计算n大与0时的情况
2012-02-21 12:08
ljl123970
Rank: 2
等 级:论坛游民
帖 子:31
专家分:42
注 册:2012-1-30
得分:0 
以下是引用wtwj1314在2012-2-21 12:08:17的发言:

感谢各位,是因为f前没加l,但while那地方还是不明白,怎么结果多乘了一次.
int i=1;
while(i<=n)
{
 s=x; x=x*x; i++;
}
按我的算法例如当n=1时,
执行s=x; x=x*x; i++; 此时i=2,便不会循环了.
按说x=x*x的值没赋给s,s应该等与x,怎么结果是s=x*x???
忘了说了,我这个程序目的只是计算n大与0时的情况
这个while中,x值被改变了,当n>3时,就不止多乘1次了
例如:
n=3时 s=x*x*x*x ,x=(x*x*x*x)*(x*x*x*x)
2012-02-22 14:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-361233-1-1.html




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

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