递归返回的限制

堕落年代 2020-06-03 03:06:42
#include <stdio.h>//交换a[1]~a[7] a[2]~a[6]...
void move(int a,int b){
int l;
l=a;
a=b;
b=l;
}
int dg(int a[10],int g,int t){
move(a[g],a[t]);
if(t==4||g==4) return 1;
else return dg(a[10],g++,t--);
}
int main(int argc, char *argv[])
{
int i,b[10]={0,1,2,3,4,5,6,7,0,0};
dg(b[10],1,7);
for(i=0;i<10;i++)printf("%d",b[i]);
return 0;
}
...全文
33 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2020-06-03
  • 打赏
  • 举报
回复
#include <stdio.h>//交换a[1]~a[7] a[2]~a[6]...
//#include <unistd.h>

//void move(int a,int b)
void move(int *a,int *b)
{
int l;
l = *a;
*a = *b;
*b = l;
}

int dg(int a[10],int g,int t)
{
printf("g = %d, t = %d\n", g, t);
move(a+g, a+t);
//sleep(1);
if(t==4||g==4)
return 1;
//else
//return dg(a[10],g++,t--);
//return dg(a, g++,t--);
return dg(a, ++g, --t);
}

int main(int argc, char *argv[])
{
int i,b[10]={0,1,2,3,4,5,6,7,0,0};
//dg(b[10],1,7);
dg(b,1,7);
for(i=0;i<10;i++)
printf("%d",b[i]);
return 0;
}


供参考~

建议楼主注意下b[10]作为参数和int b[10]的区别。其他的问题,建议楼主好好思考和学习一下。

69,369

社区成员

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

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