Modify the code as necessary to generate and print all 6! = 720 combinations of
ID: 3694741 • Letter: M
Question
Modify the code as necessary to generate and print all 6! = 720 combinations of the 5 letter input string: “abcdef”. For example: abcdef, abcedf, abdcef, ...
#include <stdio.h>
#include <stdlib.h>
void swap (int v[], int i, int j)
{
int t;
t = v[i];
v[i] = v[j];
v[j] = t;
}
void perm (int v[], int n, int i)
{
int j;
if (i == n)
{
for (j=0; j<n; j++) printf ("%d ", v[j]);
printf (" ");
}
else
for (j=i; j<n; j++)
{
swap (v, i, j);
perm (v, n, i+1);
swap (v, i, j);
}
}
int main ()
{
int v[5], i;
for (i=0; i<5; i++) v[i] = i+1;
perm (v, 5, 0);
exit (0);
}
Explanation / Answer
Answer: Below is the modified code :
#include <stdio.h>
#include <stdlib.h>
void swap (int v[], int i, int j)
{
int t;
t = v[i];
v[i] = v[j];
v[j] = t;
}
void perm (int v[], int n, int i)
{
int j;
if (i == n)
{
printf ("%d ", v[j]);
for (j=0; j<n; j++) printf ("%d ", v[j]);
printf (" ");
}
else
for (j=i; j<n; j++)
{
swap (v, i, j);
Perm(v,n+1,i)
swap (v, i, j);
}
}
int main ()
{
int v[5], i;
for (i=0; i<5; i++) v[i] = i+1;
perm (v, 5, 0);
exit (0);
}
int main ()
{
int v[5], i;
for (i=0; i<5; i++) v[i] = i+1;
perm (v, 5, 0);
exit (0);
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.