作者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