破釜沉舟论坛 » 编程开发 » [求助] 谁能帮帮我?(C语言)

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.