关于间接递归

ttlyfast 2006-09-01 10:59:10
我写了一个递归程序

#include "stdio.h"
#include "conio.h"


int A(int x,int y)
{
printf("x+y=%d \n",(x+y)); //加上这句就出错说cpu遇到无效指令 晕!
C(x+=2,y-=3);
if((x+y)<-6000)
return (x+y);
if ((x+y)<10000)
B(x-=2,y-=5);
else return (x+y);
}
int B(int x,int y)
{
if ((x+y)<3000)
return C(x+=y,y-=3);
else
return A(x-=7,y+=5);
}

int C(int x,int y)
{
B(x+=2,y+=1);
if ((x+y)<5000)
B(x-=5,y+=x);
else
return A(x-=2,y-=3);

}


main()
{


printf("x+y=%d",A(5,6));
getch();
}

此程序在WinTc下编译通过 不过运行时总是转不出结果
我就在函数A里加了打印语句 来寻找原因 结果
在运行时出错 不知是什么原因?
请大家赐教!
...全文
206 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanluo129 2006-09-01
  • 打赏
  • 举报
回复
我编译了,可以运行,只是会出点错~VC++6.0
liliang800207 2006-09-01
  • 打赏
  • 举报
回复
(x+=2, y+=1)
会先加减 再调函数
liliang800207 2006-09-01
  • 打赏
  • 举报
回复
我在unix下调得 没有conio.h这个头文件
ttlyfast 2006-09-01
  • 打赏
  • 举报
回复
关键问题是为什么不论 在A,B,C哪个函数里加print语句都出错哪?
格兰特杨 2006-09-01
  • 打赏
  • 举报
回复
(x+=2, y+=1)

目的是把加过的值入栈还是加前的值入栈?
liliang800207 2006-09-01
  • 打赏
  • 举报
回复
printf("x+y=%d \n",(x+y)); /*加上这句就出错说cpu遇到无效指令 晕!*/
这样加注视
liliang800207 2006-09-01
  • 打赏
  • 举报
回复
好像是一个死循环,你还是把printf函数调一下吧
看一下日志
我看了一下程序,好像循环在A C之间了
你把限制循环的常量调小一点
鼎拨神器 4.02 软件描述 ====================== 一、软件简介 鼎拨神器是一款面向拨号场景的桌面工具软件,提供账号批量拨号、拨号状态管理、日志留痕等功能,适用于需要频繁切换拨号账号的使用场景。软件界面简洁、操作直观,账号配置与管理一体化,开箱即用。 二、核心功能 1. 账号拨号:支持多账号配置,账号与密码以"空格或 Tab 键"分隔,可从表格(一列账号、一列密码)直接复制粘贴导入,批量管理、快速切换。 2. 动态等待:拨号成功后支持 1-60 秒动态等待时长,可有效规避连续拨号过快导致的失败,提升拨号成功率。 3. 流量选项:内置流量模式选项(4.0 版本新增),按需选择,灵活适配不同拨号需求。 4. 日志留痕: - dial_log.xls:最近一次拨号记录; - dial_log_日期.txt:全部拨号记录,按天归档,方便追溯与统计。 5. 图标美化:4.02 版本窗口左上角与任务栏统一应用专属图标,界面更规范。 三、版本更新记录 - 版本 4.02:修复了一些已知问题,优化窗口图标显示。 四、目录结构说明 - 鼎拨神器.exe:主程序,双击启动。 - Launcher_ForExe.exe:拨号调度启动器。 - Program 文件夹:软件内部文件,请勿删除。 - Program\dial.exe:核心拨号组件。 - accounts.txt:账号密码配置文件(账号与密码间用一个空格或 Tab 键隔开)。如不慎删除,请以"accounts.txt"命名自建文件即可恢复使用。 - rz 文件夹:日志文件夹,自动生成拨号记录。 建议每次拨号时将最后一个账号设为自己固有的账号,避免前面所有账号拨号不成功。 详细条款请参阅软件包内《软件使用授权及免责声明》。

70,040

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧