C语言NaN咋调试?
1. 减少网格数和颗粒数,方便输出调试;2. 看懂程序函数调用过程,方便输出调试;3. 添加输出中间变量文件的模块或是函数,方便输出调试;4. 最后,当然是输出调试了
■网友
有几种常见情况会导致NaN,比如说使用实数的时候对负数开方,可以参考 NaN - Wikipedia
有个简单办法判断一个浮点数,a,是不是NaN, if(a!=a) { // it\u0026#39;s a NaN},这样就不用全部输出了。
【C语言NaN咋调试?】 其他的方法要看你的编程环境了。intel的c编译器在linux下可以用 -fp-trap=all 选项。
给两个链接
Floating-Point Exceptions under windows
Trapping floating point exceptions in Linux
■网友
一般不要一口吃一个胖子,一上来就跑很大的程序,可以从比较粗的网格,比较小的domain开始慢慢试。如果有turbulence可以先试试laminar能不能跑,显示的话查查CFL number有多少,减小时间步长之类的。试完了发现算法没问题,再慢慢增加复杂程度。
我有几次遇到NaN是因为什么地方除了一个0。还有就是C里面万一memory没allocate好,可能用错了memory了。这些只是可能,具体怎么回事还是得自己慢慢调。。。
■网友
输出调试,观察有可能出错的中间变量随迭代的变化趋势。当然看脸也很重要。
推荐阅读
- OC为何跌出语言榜前十
- dart这编程语言现在发展怎么样了,语法与Java,c#很相似,甚至更简洁
- 人民车市|新语言、新起点,捷达VS7 强势入局
- C语言 指针引用数组的地址问题
- 零基础入门学习啥语言好
- 营销型外贸网站用哪种建站程序和语言比较好呢主要是适合优化,可扩展兼容性,安全性,后期网站扩展升级
- 有哪些轻易就被识别的淘宝刷单评论语言
- C语言指数函数代码
- 我现在在学c语言,然后以后的工作目标是腾讯网易这些游戏公司,我是通信专业,请问我接下来再该学些啥呢
- 编程语言学完之后学习啥才能做出程序?
