#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
#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
*prt=page(prt);
}
你这个函数,是死循环啊
如果输入>1的数,计算机知道死循环就中断啊,所以没结果
如果输入<1 就有结果了啊
因为他的函数定义写在main函数的后面,所以必须在前面进行声明,不然编译的时候会提示未知的函数调用,声明只是告诉编译器这个函数的结构,所以不需要写形参,只要有参数类型就够了。
话说递归失败的原因倒是简单,如以上几位仁兄所说,没有递归终止条件,仅此而已。
int page_2(int *)这个声明应该放在main()外面吧。
好像这个函数没意义样。