Re: [求救]C++
※ 引述《ck910525 (腳痛大學)》之銘言:
: 題目;使用者輸入一個字串,印出這些字元的所有排列組合。
: 若限定字元全異,我已經寫好了。
: 但是字串中有相同字元怎麼辦?
: 拜託一下
: 感謝
今天在家沒事,想練練程設,把這題又翻出來想了想
不知道這樣寫可不可以
#include<iostream>
#include<stdlib.h>
#include<cctype>
using namespace std;
void print(char arrary[], int max)
{
for (int i=0;i<max;i++)
{
cout<<arrary[i];
}
cout<<endl;
}
void pre(char old[] ,char buffer[], bool used[], int max, int count)
{
if(count==max)
{
print(buffer,max);
} else
{
for(int i=0;i<max;i++)
{
if(used[i]==false)
{
if(old[i-1]==old[i] && used[i-1]==false)
{
}else
{
used[i]=true;
buffer[count]=old[i];
pre(old,buffer,used,max,count+1);
used[i]=false;
}
}
}
}
}
int compare(const void *a, const void *b)
{
return *(char *)a-*(char *)b;
}
int main()
{
int count=0;
char temp;
char arrary[1000]={0};
char buffer [1000]={0};
bool used[1000]={0};
while((temp=cin.get())!=10)
{
arrary[count++]=temp;
}
qsort(arrary,count,sizeof(char),compare);
pre(arrary,buffer,used,count,0);
system("pause");
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.166.54.159
推
07/20 22:50, , 1F
07/20 22:50, 1F
推
07/20 23:02, , 2F
07/20 23:02, 2F
推
07/23 18:44, , 3F
07/23 18:44, 3F
推
07/23 20:22, , 4F
07/23 20:22, 4F
推
07/23 21:20, , 5F
07/23 21:20, 5F
→
07/23 21:35, , 6F
07/23 21:35, 6F
→
07/23 21:44, , 7F
07/23 21:44, 7F
推
07/24 11:13, , 8F
07/24 11:13, 8F
推
07/24 16:01, , 9F
07/24 16:01, 9F
推
07/30 16:55, , 10F
07/30 16:55, 10F
討論串 (同標題文章)