永发信息网

C语言怎样使用指针来递归函数

答案:3  悬赏:80  手机版
解决时间 2021-05-03 20:22
  • 提问者网友:欲劫无渡
  • 2021-05-03 09:24

#include <stdio.h>
int page(int *);
int main(void)
{
int page_2(int *);
int num;
scanf("%d",&num);
page(&num);
printf("%d",num);
return 0;
}
int page(int *prt)
{
if(*prt>1)

*prt=page(prt);
}

我要用这段代码来完成递归,然后怎么错误了。知道的加我QQ415612687

最佳答案
  • 五星知识达人网友:轻雾山林
  • 2021-05-03 09:52
int page(int *prt)
{
if(*prt>1)

*prt=page(prt);
}
你这个函数,是死循环啊


如果输入>1的数,计算机知道死循环就中断啊,所以没结果


如果输入<1 就有结果了啊

全部回答
  • 1楼网友:山有枢
  • 2021-05-03 11:01

因为他的函数定义写在main函数的后面,所以必须在前面进行声明,不然编译的时候会提示未知的函数调用,声明只是告诉编译器这个函数的结构,所以不需要写形参,只要有参数类型就够了。

话说递归失败的原因倒是简单,如以上几位仁兄所说,没有递归终止条件,仅此而已。

  • 2楼网友:duile
  • 2021-05-03 10:40

int page_2(int *)这个声明应该放在main()外面吧。

好像这个函数没意义样。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯