CIS 210 Introduction to C++ Programming (Fall 2017) Assignment Points: 100 Due D
ID: 3825875 • Letter: C
Question
CIS 210 Introduction to C++ Programming (Fall 2017) Assignment Points: 100 Due Date: 4/26/2017 (beginning of class) 1. A magic square is a two-dimensional array of positive integers, which have the following characteristics: The number of rows equals the number of columns All entries must be positive integers The sum of all entries in each row, each column and the two diagonals are write a C++ program to determine if a set of numbers represents a magic 4x4 a Square. Read a set of numbers from the keyboard (see sample input below) validate the input to ensure integer numbers are positive. If a negative number is given, generate an error message and prompt the user to reenter a number Your program must include the foliowing functions: o main-display welcome message, declare array, call user defined functions getinput, checksums, checkRowSums, checkColsums, check Diagsums, and o splayResult o getlnput -prompts uur for and validates the input (see sample input below) o checksums computes an initial sum and then calls the functions checkRowSums, checkColSums, and checkDiagsums. The functions checkRowSums, checkColSums, and checkDiagSums should return a Boolean value that indicates if the corresponding sums represent a magic square. Note: the checkRo checkColsums, and heckDiagSums functions should only be called ifnecessary o displayResult-displays the results (see sample output below)Explanation / Answer
Program:-
#include<iostream>
using namespace std;
int checkRowSum(int[20][20],int,int);
int checkColSum(int[20][20],int,int);
int checkDiagSum(int[20][20],int,int);
int main()
{
int row,col,arr[20][20],flag=1;
while(1)
{
cout<<"Enter number of rows"<<endl;
cin>>row;
cout<<"Enter number of columns"<<endl;
cin>>col;
if(row==col)
{
break;
}
else
{
cout<<"Rows and columns must be equal.Try again."<<endl;
}
}
cout<<"Enter values into array"<<endl;
for(int i=0;i<row;i++)
{
cout<<"Enter row "<<i+1<<" values :"<<endl;
for(int j=0;j<col;j++)
{
cout<<"Enter column "<<j+1<<" value : ";
cin>>arr[i][j];
if(arr[i][j]<0)
{
cout<<"Enter positive number :"<<endl;
j--;
}
}
}
for(int i=0;i<row;i++)
{
int row_sum=checkRowSum(arr,i,col);
int col_sum=checkColSum(arr,row,i);
int dig_sum=checkDiagSum(arr,row,col);
if(row_sum!=col_sum || col_sum!=dig_sum || row_sum!=dig_sum)
{
flag=0;
break;
}
}
if(flag!=0)
{
cout<<endl<<endl<<"Congratulations ! Your numbers form magic square."<<endl;
}
else
{
cout<<"Sorry.Your numbers not form magic square. "<<endl;
}
}
int checkRowSum(int list[20][20],int n,int m)
{
int sum=0;
for(int j=0;j<m;j++)
{
sum=sum+list[j][0];
}
return sum;
}
int checkColSum(int list[20][20],int n,int m)
{
int sum=0;
for(int j=0;j<n;j++)
{
sum=sum+list[0][j];
}
cout<<sum<<endl;
return sum;
}
int checkDiagSum(int list[20][20],int n,int m)
{
int sum=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(i==j)
{
sum=sum+list[i][j];
}
}
}
cout<<sum<<endl;
return sum;
}
Output:-
Enter number of rows
4
Enter number of columns
4
Enter values into array
Enter row 1 values :
Enter column 1 value : 1
Enter column 2 value : -14
Enter positive number :
Enter column 2 value : 14
Enter column 3 value : 14
Enter column 4 value : 4
Enter row 2 values :
Enter column 1 value : 11
Enter column 2 value : 7
Enter column 3 value : 6
Enter column 4 value : 9
Enter row 3 values :
Enter column 1 value : 8
Enter column 2 value : 10
Enter column 3 value : 10
Enter column 4 value : 5
Enter row 4 values :
Enter column 1 value : 13
Enter column 2 value : 2
Enter column 3 value : 3
Enter column 4 value : 15
Congratulations ! Your numbers form magic square.