Implement in C Programming 10.11.1: LAB: All permutations of names Given a main program that reads the number of one word names followed by the list of names, complete the recursive function PrintAllPermutations() to list all ways people can line up for a photo (all permutations of an array of strings). Function PrintAllPermutations() takes 4 parameters: an array of a permutation of names, the number of names in the array of the permutation of names, an array of available names, and the number of names in the array of available names. Function PrintAllPermutations() then creates and outputs all possible orderings of those names separated by a comma, one ordering per line. When the input is: 3 Julia Lucas Mia then the output is (must match the below ordering): Julia, Lucas, Mia Julia, Mia, Lucas Lucas, Julia, Mia Lucas, Mia, Julia Mia, Julia, Lucas Mia, Lucas, Julia (please add commas in code please) #include #include #include const int MAX_NAME_SIZE = 50; // TODO: Write function to create and output all permutations of the list of names. void PrintAllPermutations(char **permList, int permSize, char **nameList, int nameSize) { } int main(void) { int size; int i = 0; char name[MAX_NAME_SIZE]; scanf("%d", &size); char *nameList[size]; char *permList[size]; for (i = 0; i < size; ++i) { nameList[i] = (char *)malloc(MAX_NAME_SIZE); scanf("%s", name); strcpy(nameList[i], name); } PrintAllPermutations(permList, 0, nameList, size); // Free dynamically allocated memory for (i = 0; i < size; ++i) { free(nameList[i]); } return 0; }
Implement in C Programming
10.11.1: LAB: All permutations of names
Given a main program that reads the number of one word names followed by the list of names, complete the recursive function PrintAllPermutations() to list all ways people can line up for a photo (all permutations of an array of strings). Function PrintAllPermutations() takes 4 parameters: an array of a permutation of names, the number of names in the array of the permutation of names, an array of available names, and the number of names in the array of available names. Function PrintAllPermutations() then creates and outputs all possible orderings of those names separated by a comma, one ordering per line.
When the input is:
3 Julia Lucas Mia
then the output is (must match the below ordering):
Julia, Lucas, Mia
Julia, Mia, Lucas
Lucas, Julia, Mia
Lucas, Mia, Julia
Mia, Julia, Lucas
Mia, Lucas, Julia
(please add commas in code please)
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
const int MAX_NAME_SIZE = 50;
// TODO: Write function to create and output all permutations of the list of names.
void PrintAllPermutations(char **permList, int permSize, char **nameList, int nameSize) {
}
int main(void) {
int size;
int i = 0;
char name[MAX_NAME_SIZE];
scanf("%d", &size);
char *nameList[size];
char *permList[size];
for (i = 0; i < size; ++i) {
nameList[i] = (char *)malloc(MAX_NAME_SIZE);
scanf("%s", name);
strcpy(nameList[i], name);
}
PrintAllPermutations(permList, 0, nameList, size);
// Free dynamically allocated memory
for (i = 0; i < size; ++i) {
free(nameList[i]);
}
return 0;
}
Trending now
This is a popular solution!
Step by step
Solved in 4 steps with 4 images