回 帖 发 新 帖 刷新版面

主题:[讨论]再发:递归调用函数后输出数据不对,请老师们赐教。多谢多谢!!!

问题:该程序是我写的一个筛选程序(写的不好)在未递归调用前输出的数据是okok=154(在程序的第1453行)。递归前该程序没有问题数据准确我已经调试过。但在递归调用ssl009( a, jtyyxy);在第1750行函数后输出却是1449。理论上应该比未递归前154的数小很多才对。但递归调用后数据却大了许多明显是错误的。但我查来查去没找出问题在哪里?请老师们赐教我在此先谢谢了!!!
为了方便大家调试,我也把txt读入文件也一并发上去。
详见附件
[em10]

回复列表 (共2个回复)

沙发

这真是一个可怕的程序,函数和变量的命名实在是太难认了。
递归的意思是一个函数(直接或者间接的)调用自己。但是楼主所说的ssl009这个函数,并没有满足这一条定义。不知道楼主所说的递归是什么。

1750行:
 if(okok>100);
 ssl009( a, jtyyxy);      //以下重新调用函数筛选
 ssl010( b, jzyy1234HH);
这里如果if不成立,则仍然会执行ss1010,因为没有用大括号“{}”。因为函数名字实在太难认,不知道楼主到底想怎么做,所以也不知道这里写错了没有。

板凳

谢谢楼上的回复。
你说的那个地方就是加上大括号{}输出的结果也是不对。
该程序是想把筛选出的结果okok=154.再重新回到程序的ssl009( a, jtyyxy)位置再做一次重新筛选 (即:递归调用 ssl009( a, jtyyxy)。
我把程序中读入的txt文件发上去,能方便大家可以运行程序调试下。 (因回复不能发送附件,我重新发帖把读入的txt文件发上去)

我来回复

您尚未登录,请登录后再回复。点此登录或注册