You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.2 KiB
C

#include <stdio.h>
#include <stdlib.h>
int len;
void swap (int *x, char *y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
void print(const int *v)
{
int i;
int size = len;
if (v != 0)
{
for ( i = 0; i < size; i++)
{
printf("%4d", v[i] );
}
printf("\n");
}
}
void heappermute(int v[], int n)
{
int i;
if (n == 1)
{
print(v);
}
else
{
for (i = 0; i < n; i++)
{
heappermute(v, n-1);
if (n % 2 == 1)
{
swap(&v[0], &v[n-1]);
}
else
{
swap(&v[i], &v[n-1]);
}
}
}
}
int main()
{
int num[11];
int i;
printf("How many numbers you want to enter: ", len);
scanf("%d", &len);
printf("\nEnter %d numbers: ");
for ( i = 0 ; i < len; i++)
scanf("%d", &num[i]);
heappermute(num, len);
return 0;
}