Question
Starting with the code below: Make use of 2D array #include #include using namespace std; int box[10][10]; int size; int readSize(ifstream& fin) { fin >>
Starting with the code below: Make use of 2D array
#include
using namespace std; int box[10][10]; int size;
int readSize(ifstream& fin) { fin >> size; } int readData(ifstream& fin) { } void printMatrix() { } int sumRow(int r) { } int sumCol(int c) { } int sumMainDiagonal() { } int sumReverseDiagonal() { } bool isMagic() { }
int lab() { cout << "Done" << endl; }
C++
Objectives:
Make use of a 2D Array
Understand how to traverse a 2D Array
Instructions:
A magic square is a matrix (two dimensional arrays) in which the sum of each row, sum of each column, sum of the main diagonal, and sum of the reverse diagonal are all the same value.
You are to code a program to determine if a given two-dimensional array (that will be read in from a file) is a magic square or not. This task (the task of determining if the square is magic) will be run in a loop. This loop should continue to read in squares, and determine if they are magic until the size read in is equal to -1 (the sentinel value).
Functions:
Code a function/method for each of the following:
Read data into the matrix
Print the matrix on the screen
Sum a row given the index for that row
Sum a column given the index for that column
Sum the main diagonal
Sum the reverse diagonal
Determine if the 2D Array is a magic square
The main method will read the size of the array outside of the main loop. Then inside the main loop it will call methods to read the data into the matrix, print the matrix, print all the row sums, print all the column sums, and print both diagonals. Then the program will determine if the matrix is a magic square and print an appropriate message. The next size should be read in before the loop repeats. The main should continue on with the next matrix, until a size of -1 is reached.
Sample Output:
The first part of the output should look similar to this:
=========
= Square 1=
=========
8 1 6
3 5 7
4 9 2
The sum of row 0 is 15
The sum of row 1 is 15
The sum of row 2 is 15
The sum of column 0 is 15
The sum of column 1 is 15
The sum of column 2 is 15
The main diagonal is 15
The other diagonal is 15
This matrix is a magic box!
Data File:
Paste everything below this block of text into a notepad file. Your input file must appear exactly as it below and include all of this data in the same file.
3
8 1 6
3 5 7
4 9 2
7
30 39 48 1 10 19 28
38 47 7 9 18 27 29
46 6 8 17 26 35 37
5 14 16 25 34 36 45
13 15 24 33 42 44 4
21 23 32 41 43 3 12
22 31 40 49 2 11 20
4
48 9 6 39
27 18 21 36
15 30 33 24
12 45 42 3
3
6 2 7
1 5 3
2 9 4
4
3 16 2 13
6 9 7 12
10 5 11 8
15 4 14 1
5
17 24 15 8 1
23 5 16 14 7
4 6 22 13 20
10 12 3 21 19
11 18 9 2 25
7
30 39 48 1 10 28 19
38 47 7 9 18 29 27
46 6 8 17 26 37 35
5 14 16 25 34 45 36
13 15 24 33 42 4 44
21 23 32 41 43 12 3
22 31 40 49 2 20 11
-1
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started