I need help fixing just part of my code and I can\'t figure out. Your help is gr
ID: 3603210 • Letter: I
Question
I need help fixing just part of my code and I can't figure out. Your help is greatly appreciated. I just nedd help fixing bool allSumsAre Equal. PLEASE KEEP IN MIND the We can't use malloc or any high level coding.
the requirment is as follows:
// ******************************************************** //
The isValidGrid function accepts a two-dimensional int array as an argument, and returns true if each value in the range 1 through N_COL*N_ROWS appears once and only once. Otherwise, it returns false.
// ********************************************************//
I will post my code below and the outcome below Thank you.
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define N_COLS 3
#define N_ROWS 3
void displayArry(int values[][N_COLS]);
bool isValidGrid(int values[][N_COLS]);
bool allSumsAreEqual(int values[][N_COLS]);
bool isMagicSquare(int values[][N_COLS]);
int main()
{
// array1 is a magic square
int array1[][N_COLS] = { { 4, 9, 2 }, { 3, 5, 7 }, { 8, 1, 6 }};
// array2 is a non-magic square
int array2[][N_COLS] = { { 2, 2, 3 }, { 4, 1, 6 }, { 7, 8, 5 }};
// array3 is a magic square
int array3[][N_COLS] = { { 4, 3, 8 }, { 9, 5, 1 }, { 2, 7, 6 }};
// array4 is a non-magic square
int array4[][N_COLS] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }};
bool signal = true;
displayArry(array1);
signal = isMagicSquare(array1);
if(signal == true)
{
printf(" This is a magic square. ");
}
else
{
printf(" This is not a magic square. ");
}
signal = false;
displayArry(array2);
signal = isMagicSquare(array1);
if(signal == true)
{
printf(" This is a magic square. ");
}
else
{
printf(" This is not a magic square. ");
}
signal = false;
displayArry(array3);
signal = isMagicSquare(array3);
if(signal == true)
{
printf(" This is a magic square. ");
}
else
{
printf(" This is not a magic square. ");
}
signal = false;
displayArry(array4);
signal = isMagicSquare(array4);
if(signal == true)
{
printf(" This is a magic square. ");
}
else
{
printf(" This is not a magic square. ");
}
return 0;
}
void displayArry(int values[][N_COLS])
{
printf("==================================== ");
for (int i = 0; i < N_ROWS; i++)
{
printf(" ");
for (int j = 0; j < N_COLS; j++)
{
printf(" %d", values[i][j]);
}
}
}
bool isValidGrid(int values[][N_COLS])
{
int *count;
count = 0;
bool signal = true;
for (int i = 1; i <= N_ROWS * N_COLS; i++)
count[i] = 0;
for (int i = 0; i < N_ROWS; i++)
{
for (int j = 0; j < N_COLS; j++)
{
count[values[i][j]] = count[values[i][j]] + 1;
}
}
for(int k=1; k<= N_ROWS*N_COLS; k++)
{
if((count[k]) != 1)
{
signal = false;
break;
}
}
free(count);
return signal;
}
bool allSumsAreEqual(int values[][N_COLS])
{
int sum = 0;
bool signal = true;
for (int i = 0; i < N_ROWS; i++)
{
for (int j = 0; j < N_COLS; j++)
{
if (i == j)
sum = sum + values[i][j];
}
}
for (int i = 0; i < N_ROWS; i++)
{
int sumOfRow = 0;
for (int j = 0; j < N_COLS; j++)
{
sumOfRow = sumOfRow + values[i][j];
}
if (sum == sumOfRow)
signal = true;
else
{
signal = false;
break;
}
}
for (int i = 0; i < N_ROWS; i++)
{
int SumOfCol = 0;
for (int j = 0; j < N_COLS; j++)
{
SumOfCol = SumOfCol + values[j][i];
}
if (sum == SumOfCol)
signal = true;
else
{
signal = false;
break;
}
}
return signal;
}
bool isMagicSquare(int values[][N_COLS])
{
bool Signal = true;
bool ValidGrid = isValidGrid(values);
bool equalSums = allSumsAreEqual(values);
if(ValidGrid != true || equalSums != true)
Signal = false;
return Signal;
}
OUTCOME
9 2 3 5 7 6 8 This is a magic square. 2 2 3 8 5 This is not a magic square 8 1 6 4 2 7 This is a magic square 7 8 9 This is not a magic square. Process returned 0 (0x0) execution time: 0.017 s Press any key to cont inue.Explanation / Answer
}
signal = false;
displayArry(array3);
signal = isMagicSquare(array3);
if(signal == true)
{
printf(" This is a magic square. ");
}
else
{
printf(" This is not a magic square. ");
}
signal = false;
displayArry(array4);
signal = isMagicSquare(array4);
if(signal == true)
{
printf(" This is a magic square. ");
}
else
{
printf(" This is not a magic square. ");
}
return 0;
}
void displayArry(int values[][N_COLS])
{
printf("==================================== ");
for (int i = 0; i < N_ROWS; i++)
{
printf(" ");
for (int j = 0; j < N_COLS; j++)
{
printf(" %d", values[i][j]);
}
}
}
bool isValidGrid(int values[][N_COLS])
{
int *count;
count = 0;
bool signal = true;
for (int i = 1; i <= N_ROWS * N_COLS; i++)
count[i] = 0;
for (int i = 0; i < N_ROWS; i++)
{
for (int j = 0; j < N_COLS; j++)
{
count[values[i][j]] = count[values[i][j]] + 1;
}
}
for(int k=1; k<= N_ROWS*N_COLS; k++)
{
if((count[k]) != 1)
{
signal = false;
break;
}
}
free(count);
return signal;
}
bool allSumsAreEqual(int values[][N_COLS])
{
int sum = 0;
bool signal = true;
for (int i = 0; i < N_ROWS; i++)
{
for (int j = 0; j < N_COLS; j++)
{
if (i == j)
sum = sum + values[i][j];
}
}
for (int i = 0; i < N_ROWS; i++)
{
int sumOfRow = 0;
for (int j = 0; j < N_COLS; j++)
{
sumOfRow = sumOfRow + values[i][j];
}
if (sum == sumOfRow)
signal = true;
else
{
signal = false;
break;
}
}
for (int i = 0; i < N_ROWS; i++)
{
int SumOfCol = 0;
for (int j = 0; j < N_COLS; j++)
{
SumOfCol = SumOfCol + values[j][i];
}
if (sum == SumOfCol)
signal = true;
else
{
signal = false;
break;
}
}
return signal;
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.