作者CCSam (GMT)
看板EE_DSnP
标题[问题] 浮点数错误?
时间Thu Oct 29 16:21:47 2009
//自done了,感谢各位@@
不好意思来问个蠢问题...
我现在可以直接make, 功能初步测试也都正常
但是我make test出来的 testMC
执行的时候却会出现"浮点数错误" 然後就crash了。
output如下
/hw3$ ./testMC 9 9 9
Setting modulus = 16...
num[0] = 9
num[1] = 7
num[2] = 0
num[3] = 2
num[4] = 15
num[5] = 9
num[6] = 9
num[7] = 7
num[8] = 0
num[9] = 0
浮点数出错
可是我们这次并没有用到任何浮点数啊?
於是我把test.cpp开出来, 稍微用点cout大法
发现是在第一个 print()函式中crash的.
(这段code是直接写在test.cpp里的)
void print()
{
for (size_t i = 0; i < NUM_MOD; ++i)
cout << "num[" << i << "] = " << num[i] << endl;
cout << endl;
}
先谢谢你把这篇文章看完XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.4.235
※ 编辑: CCSam 来自: 220.136.86.186 (10/29 20:09)
※ 编辑: CCSam 来自: 220.136.86.186 (10/29 20:22)
1F:推 Neilhahaha:应该不是test.cpp的问题 可能是calcModNum写的时候有 10/29 20:26
2F:→ Neilhahaha:问题吧 10/29 20:27
3F:→ Neilhahaha:因为我直接用test.cpp是没问题啦.. 10/29 20:27
※ 编辑: CCSam 来自: 220.136.86.186 (10/29 21:44)
4F:→ CCSam:我在把Operator overloading里的 a%=b这种 全改成 a=a%b之後 10/29 21:48
5F:→ CCSam:结果就对了,正在Figure out 原因中。。 10/29 21:49
※ 编辑: CCSam 来自: 220.136.86.186 (10/29 21:51)
6F:推 ric2k1:return reference to local variable? 10/29 22:22
7F:推 a3785lexx:原PO有用到abs()吗? abs()好像会跟浮点扯上边的感觉.. 10/31 17:09
8F:→ a3785lexx:我要用的时候它跟我说ambiguous所以我就没用了orz... 10/31 17:10
9F:→ a3785lexx:啊没事...我想错了...话说我一直没有很懂负数的MOD 10/31 17:16
10F:→ a3785lexx:是怎麽回事orz... 10/31 17:16
11F:推 anfranion:负数的mod就是不断加mod n的n到最靠近0的那个负数~ 11/05 00:29