作者infant00 (幼儿)
看板C_and_CPP
标题Re: [问题] c++递回
时间Sat Oct 6 23:45:33 2007
※ 引述《infant00 (幼儿)》之铭言:
: 一个array{a,b,c}
: 丢到一个recursive function
: 可以印出{}{a}{b}{c}{a,b}{a,c}{b,c}{a,b,c}
: 不知道怎麽解?
: 可以说明怎麽想出来的吗
: 就是过程之类的
: 感谢 囧rz
谢谢av骇客的点子
让我写的出作业
有不少版友密我要程式码
嫌麻烦就PO在板上罗~
写的不是很好
希望大家可以帮忙修改一下
#include<iostream>
#define N 3
using namespace std;
void b(int a[],int s);
int main()
{
int a[N];
for(int i=0;i<N;i++)
a[i]=i+1;
b(a,N);
return 0;
}
void b(int a[],int s)
{
int t,u=0;
cout<<"{";
for(int i=0;i<N;i++)
if(a[i]>0)
cout<<a[i]<<",";
cout<<"}"<<endl;
if(s>0)
{
for(i=0;i<N;i++)
if(a[i]==0)
u=i;
for(i=u;i<N;i++)
if(a[i]!=0)
{
t=a[i];
a[i]=0;
b(a,s-1);
a[i]=t;
}
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.138.19
※ 编辑: infant00 来自: 140.113.138.19 (10/06 23:46)
1F:→ infant00:如果要印出abc 就用printf("%c",'a'+i) 10/06 23:46
※ 编辑: infant00 来自: 140.113.138.19 (10/06 23:49)
3F:→ doomleika:在project的link加上-mwindows这一行即可 10/07 01:08
4F:→ doomleika:GOD,我推错了囧,真不好意思 10/07 01:08
5F:推 revivalworld:b() 里面的 int i 在离开第一个 for loop 时就消失罗 10/07 14:22
6F:→ revivalworld:所以再来的两个 for loop 里面的 i 是不合法的 10/07 14:23