查看: 98|回复: 0

codeblocks编程c语言时递归函数中的循环部分可能导致后面 ...

[复制链接]

3

主题

5

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2022-9-21 18:58:04 | 显示全部楼层 |阅读模式

奇怪的现象?
https://www.zhihu.com/video/1555716634505015296
如上方视频所显示,在这个用递归实现选择排序算法的作业中,此时主程序的printf无法输出,但是当在递归函数的循环中随便插入一个printf输出时(参数、字符都可以),主程序部分的输出结果也能够显示了。
在不加循环中的printf时,经尝试发现:如果在主函数调用select函数之前有printf,可但仅可输出这个数据;在递归函数内且在循环之后再有printf,没有输出结果;在主函数中调用函数之后的printf也没有输出。
有没有大佬讲讲这是我的代码有问题还是编译器有问题?
。。。。。。。。。。。。。。。。。。。
发现出现问题的原因了,第16行使用了a[k],但是如果循环中if一直不成立的话k就得不到赋值,只需讲第6行代码改为int k=n-1;即可。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表