
2006-5-10 14:38
心在滴血0
[求助] 谁能帮帮我?(C语言)
PS:
M=sqrt(a*i+b)
a,b均为整型输入值;
i=1,2,3...;
要求:M为整数时输出,循环结束条件是M<=3;
希望哪位好心人帮帮我!
2006-5-11 13:08
心在滴血0
怎么就没有人可以帮我解决这个问题吗?
2006-5-11 13:30
心在滴血0
这个问题真的没有人可以帮我解决吗???
2006-5-11 21:05
祥子
你现在的主要问题就是如何判断是否为整数,给你一个参考方法:
浮点数*10再取整,然后模10,如果余数为0,则说明是整数
2006-5-13 13:08
心在滴血0
[quote][b]引用第3楼[i]祥子[/i]于[i]2006-05-11 21:05[/i]发表的“”[/b]:
你现在的主要问题就是如何判断是否为整数,给你一个参考方法:
浮点数*10再取整,然后模10,如果余数为0,则说明是整数[/quote]
谢谢你,我就是不知道如何来写判断为整数的语句
你能说得再明白一点吗?我刚接触语言这一块,感觉很模糊
2006-5-13 13:21
心在滴血0
要判断一个数是否为整数的语句该怎么写呢?
2006-5-13 16:58
coldney
[quote][b]引用第3楼[i]祥子[/i]于[i]2006-05-11 21:05[/i]发表的“”[/b]:
你现在的主要问题就是如何判断是否为整数,给你一个参考方法:
浮点数*10再取整,然后模10,如果余数为0,则说明是整数[/quote]
这个方法不行吧。。。
比如说1.01
1.01*10=10.1
int(10.1)=10
10 mod 10 = 0
而1.01显然不是整数
2006-5-13 17:00
coldney
直接取整,如果与原来相等就是整数。这样行吗?
2006-5-13 17:41
祥子
确实,不行。
但是取整后,类型为整型,如何与浮点型相比较?类型不匹配
2006-5-13 17:51
祥子
function IsInteger(const F: Double): Boolean;
var
tmpInt: Integer;
tmpFloat: Double;
begin
tmpInt := Trunc(F); //得到浮点数的整数部分
tmpFloat := F/tmpInt; //浮点数与整数部分相除
if tmpFloat = 1 then //如果结果为1则为整数
Result := True
else
Result := False;
end;
2006-5-13 18:00
祥子
好久没用C了,不知道语法有没有写错
bool IsInteger(float f)
{
int Trunc = 0;
float tmpFloat;
Trunc = f/1;
tmpFloat = f/Trunc;
if(tmpFloat == 1)
return(ture);
else
return(false);
}
2006-5-13 18:04
coldney
我的思路:
1、取整
2、类型转换(转为float)
3、比较
2006-5-13 18:57
xxg2
支持斑竹的第二种方法
我有点看不懂第一种方法---不知道是不是用delphi变的
2006-5-13 21:13
祥子
第一种方法和第二种方法只是不同语言的不同实现,
思路是一样的:
1。取得整数部分
2。相除
3。看结果是否为1
2006-5-20 02:28
心在滴血0
非常谢谢斑竹的帮助~!
2006-5-20 02:56
心在滴血0
if(tmpFloat == 1)
return(ture); 到这里就可以输出M了(printf “M”)
else
return(false);
PS:
M=sqrt(a*i+b)
a,b均为整型输入值;
i=1,2,3...;
要求:M为整数时输出,循环结束条件是M<=3;
还有一点就是程序要求 M 一但输出程序就要结束,也就是M第一次出现整数情况整个程序就可以结束了
如果输入 a,b的值后M一直没有出现整数情况,它的结束条件就是M<=3;
斑竹可以帮我把完整的程序写出来吗?
写了这么久总是得不到想要的结果 郁闷呢 程序老是有问题运行不了
最好是用我上述的变量来写 那样我会看的明白一些。
2006-5-20 09:55
祥子
在主函数里,M 一但输出,做完该的事后就return
就可以了
2006-5-21 21:53
免费地铁
tmpFloat := F/tmpInt; //浮点数与整数部分相除
if tmpFloat = 1 then //如果结果为1则为整数
[s:4]
页:
[1]
Powered by Discuz! Archiver 5.5.0
© 2001-2006 Comsenz Inc.