#include <stdio.h>
#include <string.h>
#include <malloc.h>
void print(int *num, int n)
{
int i;
for ( i = 0 ; i < n ; i++)
}
int*permute(int*i,int h)
{
int temp = *i;
*i = *(i+h);
*(i+h) = temp;
return i+1;
}
void recursive_permute(int*i,int *j,int n)
{
if((j-i)==n-1) {print(i,n);return;};
int *tmparray
=(int*)malloc(n
*sizeof(int)); memcpy(tmparray
,i
,n
*sizeof(int)); recursive_permute(tmparray,tmparray+(j-i+1),n);
for (int h=1;h<n-(j-i);h++) recursive_permute(tmparray,permute(tmparray+(j-i),h),n);
}
int main()
{
int num[100];
int *ptr;
int temp;
int i, n, j;
printf("\nHow many number you want to enter: "); printf("\nEnter a list of numbers to see all combinations:\n"); for (i = 0 ; i < n; i++)
printf("my recursive method ---------------------------\n"); recursive_permute(num,num,n);
printf("your method -----------------------------------\n");
for (j = 1; j <= n; j++) {
for (i = 0; i < n-1; i++) {
temp = num[i];
num[i] = num[i+1];
num[i+1] = temp;
print(num, n);
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+ICAKI2luY2x1ZGUgPHN0cmluZy5oPiAKI2luY2x1ZGUgPG1hbGxvYy5oPiAKCnZvaWQgcHJpbnQoaW50ICpudW0sIGludCBuKSAKeyAgIAogaW50IGk7IAogZm9yICggaSA9IDAgOyBpIDwgbiA7IGkrKykgCiAgICBwcmludGYoIiVkICIsIG51bVtpXSk7ICAKICAgcHJpbnRmKCJcbiIpOyAgICAKfSAgIAoKaW50KnBlcm11dGUoaW50KmksaW50IGgpICAgIAp7ICAgICAgIAogICAgIGludCB0ZW1wID0gKmk7IAogICAgKmkgPSAqKGkraCk7ICAgIAogICAgKihpK2gpID0gdGVtcDsgIApyZXR1cm4gaSsxOyAKCn0gICAKdm9pZCByZWN1cnNpdmVfcGVybXV0ZShpbnQqaSxpbnQgKmosaW50IG4pICAKeyAgIAogICAgaWYoKGotaSk9PW4tMSkge3ByaW50KGksbik7cmV0dXJuO307CgogICAgaW50ICp0bXBhcnJheT0oaW50KiltYWxsb2MobipzaXplb2YoaW50KSk7CiAgICBtZW1jcHkodG1wYXJyYXksaSxuKnNpemVvZihpbnQpKTsKICAgIHJlY3Vyc2l2ZV9wZXJtdXRlKHRtcGFycmF5LHRtcGFycmF5KyhqLWkrMSksbik7CgogICAgZm9yIChpbnQgaD0xO2g8bi0oai1pKTtoKyspIHJlY3Vyc2l2ZV9wZXJtdXRlKHRtcGFycmF5LHBlcm11dGUodG1wYXJyYXkrKGotaSksaCksbik7Cn0gICAKCmludCBtYWluKCkgIAp7ICAgCiBpbnQgbnVtWzEwMF07ICAKIGludCAqcHRyOyAgCiBpbnQgdGVtcDsgIAogaW50IGksIG4sIGo7ICAgCiBwcmludGYoIlxuSG93IG1hbnkgbnVtYmVyIHlvdSB3YW50IHRvIGVudGVyOiAiKTsgICAKICAgIHNjYW5mKCIlZCIsICZuKTsgICAgCiBwcmludGYoIlxuRW50ZXIgYSBsaXN0IG9mIG51bWJlcnMgdG8gc2VlIGFsbCBjb21iaW5hdGlvbnM6XG4iKTsgICAgCiBmb3IgKGkgPSAwIDsgaSA8IG47IGkrKykgICAKICAgIHNjYW5mKCIlZCIsICZudW1baV0pOyAgIAogcHJpbnRmKCJteSByZWN1cnNpdmUgbWV0aG9kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7ICAgCiByZWN1cnNpdmVfcGVybXV0ZShudW0sbnVtLG4pOyAgCgogcHJpbnRmKCJ5b3VyIG1ldGhvZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7ICAgCgogZm9yIChqID0gMTsgaiA8PSBuOyBqKyspIHsgCiAgICBmb3IgKGkgPSAwOyBpIDwgbi0xOyBpKyspIHsgCiAgICAgICAgdGVtcCA9IG51bVtpXTsgIAogICAgICAgIG51bVtpXSA9IG51bVtpKzFdOyAgCiAgICAgICAgbnVtW2krMV0gPSB0ZW1wOyAgICAKICAgICAgICBwcmludChudW0sIG4pOyAgCiB9ICAKfSAgIAogcmV0dXJuIDA7ICAKfSAg