闷``帮我看看这代码哪错了

qq604622530 2009-03-19 10:00:18
#include <iostream>
using namespace std;
void yi()
{
cout<<"函数yi";
er();

}
void er()
{
cout<<"函数er";
yi();

}
void main()
{
yi();
er();
}
...全文
121 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengzhixi 2009-03-20
  • 打赏
  • 举报
回复
别写这种函数之间相互调用的代码
luoryan 2009-03-20
  • 打赏
  • 举报
回复
死循环!!
msg198734 2009-03-20
  • 打赏
  • 举报
回复
这种逻辑不是早都已经不再用了么?这个程序稍有差池就会进入死循环的啊,lz 需要在实际代码中注意啦~~
star_virgo 2009-03-20
  • 打赏
  • 举报
回复
LZ这是要实现什么啊?

这样得调用只要包含IF语句才行
konhon 2009-03-20
  • 打赏
  • 举报
回复
一定要先聲明
Qlaiaqu 2009-03-20
  • 打赏
  • 举报
回复
前向原则就不需要void yi();的声明了,多此一举

定义的先后问题,“向前原则”!

#include <iostream>
using namespace std;

void er();
void yi()
{
cout < <"函数yi";
er();
}

void er()
{
cout < <"函数er";
yi();

}

void main()
{
yi();
er();
}
kinnakk 2009-03-20
  • 打赏
  • 举报
回复
定义的先后问题,“向前原则”!

#include <iostream>
using namespace std;

void er();
void yi();

void yi()
{
cout < <"函数yi";
er();
}

void er()
{
cout < <"函数er";
yi();

}

void main()
{
yi();
er();
}
蜥蜴枪王 2009-03-20
  • 打赏
  • 举报
回复
en 大家上面说得有道理,一是调用函数时没有先使用函数声明;二是这个代码进入了死循环;
呵呵,LZ 好好改下吧。
lzy340623339 2009-03-19
  • 打赏
  • 举报
回复
除了没声明外,你的程序进入了一个‘死调用‘(我自己说的名词)中
就比如张三和李四打架,双方都不肯吃亏,任何一方挨对方一拳后一定要还一拳,
这样恶性循环,理想状态下(不会累,不会死等),要打到什么时候呀,所以你的程序结果就是
函数yi函数er函数yi函数er函数yi函数er函数yi函数er函数yi函数er函数yi函数er函数yi函数er函数yi函数er函数yi函数er函数yi函数er函数yi函数er函数yi函数er函数yi函数er函数yi函数er函数yi函数er函数yi函数er函数yi函数er函数yi函数er函数yi函数er函数yi函数er....

猛地在刷屏,^_^
s79947171 2009-03-19
  • 打赏
  • 举报
回复
int main()
{
yi();
er();//他根本起不到作用,也永远执行不到这里

return 0;
}
yangch_nhcmo 2009-03-19
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;
void yi(); // 先声明一下
void er(); // 先声明一下

void yi()
{
cout << "函数yi";
er(); //如果前面不声明,编辑器编译时找不到er()函数,不过楼主这样两个函数相互调用,会是一个死循环

}
void er()
{
cout << "函数er";
yi();

}
int main()
{
yi();
er();

return 0;
}

xylicon 2009-03-19
  • 打赏
  • 举报
回复
void yi(); // 先声明函数
void er();

void yi()
{
cout <<"函数yi";
er();

}
void er()
{
cout <<"函数er";
yi();

}
void main()
{
yi();
er();
}
  • 打赏
  • 举报
回复
流程上,没有错误,你贴实际代码来看。
lzr4304061988012 2009-03-19
  • 打赏
  • 举报
回复

//语法上没声明,逻辑上函数互相调用,无限循环没终结。
#include <iostream>
using namespace std;
void er();
void yi()
{
cout <<"函数yi";
er();

}
void er()
{
cout <<"函数er";
yi();

}
void main()
{
yi();
er();
}
sunnyplain 2009-03-19
  • 打赏
  • 举报
回复
是找不到函数er吧
改成如下


#include <iostream>
using namespace std;
void er();
void yi()
{
cout <<"函数yi";
er();

}
void er()
{
cout <<"函数er";
yi();

}
void main()
{
yi();
er();
}


先定义后使用,记住

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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