subject

C CODE .Finish the code and run ./fork-puzzle |sort| uniq. Which of the following is the correct output?

//In this assignment, we use fork() to create multiple processes to solve a puzzle.

//The puzzle is specified by the following array

//int a[] = {3, 6, 4, 1, 3, 4, 2, 5, 3, 0};

//A walker walks along the index of this array.

//He starts at index 0, where a[0] is 3, which indicates that

//the walker can move 3 steps. If the walker moving to the left, he would be at index

//-3, which is out of the range. Hence, he can only move to the right, after he makes the move,//he will be at index 3. Since a[3] = 1, he can move to the left or right by one move.

//Note whenever he makes his move, he should be in the range [0, 9]. He is not allowed to move

//outside of this range.

//The goal of the puzzle is to for the walker to reach index 9, where a[9] = 0. And he will

//stop there.

//What we need to do is to find the solutions of this puzzle. We limit the solutions to have

//at most 10 moves.

#include

#include

#include

#include

void print_solution(int b[], int moves)

{

for(int k = 0; k
{

printf("->%d ", b[k]);

}

printf("\n");

}

int main(int argc, char *argv[])

{

//We use the array a to describe the puzzle

int a[] = {3, 6, 4, 1, 3, 4, 2, 5, 3, 0};

//We use the array b to save the moves the walker makes

//Essentially, we save each index that the walker reaches in array b

//For example, b[0] = 3 since the walker goes to index 3 for the first move

int b[10];

int cur = 0;

int moves = 0;

int n = 10;

for(int i = 0; i< n; i++)

{

if(fork() == 0)

{

//If we find a solution, we print the solution

if(a[cur]==0)

{

b[moves - 1] = cur;

print_solution(b, moves);

return 0;

}

else if(cur + a[cur] >= 0 && cur + a[cur]
{

//Add your code here

}

}

else

{

//If we find a solution, we print the solution

if(a[cur]==0)

{

b[moves - 1] = cur;

print_solution(b, moves);

return 0;

}

else if(cur - a[cur] >= 0 && cur - a[cur]
{

//Add your code here

}

}

}

return 0;

}

/*

Note run your code the following different ways and observe the outputs

./fork-puzzle

./fork-puzzle |sort

./fork-puzzle |sort| uniq

*/

there is four option, chose one.

->3 ->2 ->6 ->8 ->5 ->9

->3 ->4 ->1 ->7 ->2 ->6 ->8 ->5 ->9

->3 ->4 ->7 ->2 ->6 ->8 ->5 ->9

All of the above

ansver
Answers: 3

Another question on Computers and Technology

question
Computers and Technology, 21.06.2019 22:00
Which one of the following identifies the primary a purpose of information classification processes? a. define the requirements for protecting sensitive data.b. define the requirements for backing up data.c. define the requirements for storing data.d. define the requirements for transmitting data.
Answers: 2
question
Computers and Technology, 22.06.2019 09:00
Create a cell reference in a formula by typing in the cell name or         a. right-clicking the cell. b. clicking the cell. c. clicking the column where the cell is located. d. clicking the row where the cell is located.
Answers: 1
question
Computers and Technology, 23.06.2019 09:10
(328 inc. 448 ind. 480 in25. john has a collection of toy cars. he has 2 red cars, 4 blue cars, 4 black cars, and 6 yellowcars. what is the ratio of red cars to yellow cars? a. 1: 2b. 1: 3c. 1: 626. the net of a right triangular prism is shown below.
Answers: 2
question
Computers and Technology, 23.06.2019 11:00
Sports and entertainment class, your goal is to increase attendance and make a profit for a game by getting your team on a winning track with total salaries less than $3,000,000
Answers: 3
You know the right answer?
C CODE .Finish the code and run ./fork-puzzle |sort| uniq. Which of the following is the correct out...
Questions
question
Mathematics, 21.07.2019 06:40
question
Mathematics, 21.07.2019 06:40
Questions on the website: 13722359