Question: When i run this code i keep getting errows like the picture below? im a trying to get help on fixing the code o where

When i run this code i keep getting errows like the picture below? im a trying to get help on fixing the code o where it runs?

#include

#include

#include

#include

#define num_threads 27

int valid[num_threads] = {0};

// Struct that stores the data to be passed to threads

typedef struct {

int row;

int column;

} parameters;

int sudoku[9][9] = {

{6, 2, 4, 5, 3, 9, 1, 8, 7},

{5, 1, 9, 7, 2, 8, 6, 3, 4},

{8, 3, 7, 6, 1, 4, 2, 9, 5},

{1, 4, 3, 8, 6, 5, 7, 2, 9},

{9, 5, 8, 2, 4, 7, 3, 6, 1},

{7, 6, 2, 3, 9, 1, 4, 5, 8},

{3, 7, 1, 9, 5, 6, 8, 4, 2},

{4, 9, 6, 1, 8, 2, 5, 7, 3},

{2, 8, 5, 4, 7, 3, 9, 1, 6}

};

// Method that determines if numbers 1-9 only appear once in a column

void *isColumnValid(void* param) {

// Confirm that parameters indicate a valid col subsection

parameters *params = (parameters*) param;

int row = params->row;

int col = params->column;

if (row != 0 || col > 8) {

fprintf(stderr, "Invalid row or column for col subsection! row=%d, col=%d ", row, col);

pthread_exit(NULL);

}

// Check if numbers 1-9 only appear once in the column

int validityArray[9] = {0};

int i;

for (i = 0; i

int num = sudoku[i][col];

if (num 9 || validityArray[num - 1] == 1) {

pthread_exit(NULL);

} else {

validityArray[num - 1] = 1;

}

}

// If reached this point, col subsection is valid.

valid[18 + col] = 1;

pthread_exit(NULL);

}

// Method that determines if numbers 1-9 only appear once in a row

void *isRowValid(void* param) {

// Confirm that parameters indicate a valid row subsection

parameters *params = (parameters*) param;

int row = params->row;

int col = params->column;

if (col != 0 || row > 8) {

fprintf(stderr, "Invalid row or column for row subsection! row=%d, col=%d ", row, col);

pthread_exit(NULL);

}

// Check if numbers 1-9 only appear once in the row

int validityArray[9] = {0};

int i;

for (i = 0; i

// If the corresponding index for the number is set to 1, and the number is encountered again,

// the valid array will not be updated and the thread will exit.

int num = sudoku[row][i];

if (num 9 || validityArray[num - 1] == 1) {

pthread_exit(NULL);

} else {

validityArray[num - 1] = 1;

}

}

// If reached this point, row subsection is valid.

valid[9 + row] = 1;

pthread_exit(NULL);

}

// Method that determines if numbers 1-9 only appear once in a 3x3 subsection

void *is3x3Valid(void* param) {

// Confirm that parameters indicate a valid 3x3 subsection

parameters *params = (parameters*) param;

int row = params->row;

int col = params->column;

if (row > 6 || row % 3 != 0 || col > 6 || col % 3 != 0) {

fprintf(stderr, "Invalid row or column for subsection! row=%d, col=%d ", row, col);

pthread_exit(NULL);

}

int validityArray[9] = {0};

int i, j;

for (i = row; i

for (j = col; j

int num = sudoku[i][j];

if (num 9 || validityArray[num - 1] == 1) {

pthread_exit(NULL);

} else {

validityArray[num - 1] = 1;

}

}

}

// If reached this point, 3x3 subsection is valid.

valid[row + col/3] = 1; // Maps the subsection to an index in the first 8 indices of the valid array

pthread_exit(NULL);

}

int main() {

pthread_t threads[num_threads];

int threadIndex = 0;

int i,j;

// Create 9 threads for 9 3x3 subsections, 9 threads for 9 columns and 9 threads for 9 rows.

// This will end up with a total of 27 threads.

for (i = 0; i

for (j = 0; j

if (i%3 == 0 && j%3 == 0) {

parameters *data = (parameters *) malloc(sizeof(parameters));

data->row = i;

data->column = j;

pthread_create(&threads[threadIndex++], NULL, is3x3Valid, data); // 3x3 subsection threads

}

if (i == 0) {

parameters *columnData = (parameters *) malloc(sizeof(parameters));

columnData->row = i;

columnData->column = j;

pthread_create(&threads[threadIndex++], NULL, isColumnValid, columnData); // column threads

}

if (j == 0) {

parameters *rowData = (parameters *) malloc(sizeof(parameters));

rowData->row = i;

rowData->column = j;

pthread_create(&threads[threadIndex++], NULL, isRowValid, rowData); // row threads

}

}

}

for (i = 0; i

pthread_join(threads[i], NULL); // Wait for all threads to finish

}

// If any of the entries in the valid array are 0, then the sudoku solution is invalid

for (i = 0; i

if (valid[i] == 0) {

printf("Sudoku solution is invalid! ");

return EXIT_SUCCESS;

}

}

printf("Sudoku solution is valid! ");

return EXIT_SUCCESS;

}

When i run this code i keep getting errows like the picture

ameron@caneron-VirtualBox:~/hw2s gcc w2.c:17:1: -o hw2 hw2.c program error: stray \302, int row; in w2.c:17 : 1: w2.c:17:1: w2.c:17:1: w2.c:17:1: w2.c:17 : 1: w2.c:17:1: w2.c:17:1: w2.c:17:1: w2.c:17 : 1: w2.c:17:1: w2.c:17:1: w2.c:17:1: w2.c:17 : 1: w2.c:17:1: w2.c:17:1: w2.c:17:1: W2.c:17:1: error: error: error: error: error: error: error: error: error: error: error: error: error: error: error: error: error: stray stray stray stray stray stray stray stray stray stray stray stray stray stray stray stray stray \240' \302, \240' \302, \240' \302, \240' \302, \240' \302, \240' \302, \240' \302, \240' \302, \240 , in in in in in in in in in in in in in in in in 1n program program program program program program program program program program program program program program program program program

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!