Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

1) Matrix Problem: For this problem, you are going to implement three functions

ID: 3688252 • Letter: 1

Question

1) Matrix Problem: For this problem, you are going to implement three functions called isDiagonal, isUpperTriangular and isLowerTriangular which determine whether the matrix (passed to the function as a parameter) is diagonal, upper triangular and/or lower-triangular. The matrix is diagonal, if all the cells other than [i][i] are zero (in other words cell[i][j] = 0 if i !:). The matrix is upper triangular if all the cells [i] is 0, if i >j. The matrix is lower triangular, if all the cells [] is O if Function headers must be: o isUpperTriangular(int matrixD[MAX_SIZE], int size); o isLowerTriangular(int matrixD[MAX_SIZE], int size); o isDiagonal(int matrixD[MAX_SIZE], int size); [Assumption] The matrix passed to these function are square matrix [Assumption] The maximum size of the matrices is 20 by 20 (as . The main program MUST be as follows (and MUST NOT be changed at (ie, number of rows of the matrix = number of columns of the matrix) MAX_SIZE is defined 20 by 20 in the program) all) #include #define MAX-SIZE 20 function definitions int isupperTriangular(int matrix[MAX SIZE], int size): int isLowerTriangular(int matrix[](MAX_SIZE], int size); int isDiagonal(int matrix[[MAX_SIZE, int size) int takeInput(int inputMatrix[(MAX SIZE): int main) t int matrix(MAXSIZE)[MAX_SIZE] int matrixsize takeInput (matrix) if (isDiagonal(matrix, matrixsize) 1 else t printf( The natrix is diagonal. ") printf( The natrix is NOT diagonal. "): if (isUpperTriangular(matrix, matrixsize)) printf(The natrix is upper triangular.n") else ( printf( The matrix is NOT upper triangular. n" if (isLowerTriangular(matrix, matrixsize)) printf( The matrix is lower triangular. "): else t printf("The natrix is NOT lower triangular. ") already implemented for you int takeinput(int inputMatrixtI[MAX SIZE]) D TO BE COMPLETED BY YOU int isUpperTriangular(int matrix[]MAX_SIZE], int size) int isLowerTriangular(int matrix[[MAX SIZE] int size) int isDiagonal(int matrixI[MAX SIZE], int size)

Explanation / Answer

#include <stdio.h>


#define MAX_SIZE 20

// function definitions
int isUpperTriangular(int matrix[][MAX_SIZE], int size);
int isLowerTriangular(int matrix[][MAX_SIZE], int size);
int isDiagonal(int matrix[][MAX_SIZE], int size);

int takeInput(int inputMatrix[][MAX_SIZE]);

int main() {
int matrix[MAX_SIZE][MAX_SIZE];
int matrixSize = takeInput(matrix);

if (isDiagonal(matrix, matrixSize)) {
printf("The matrix is diagonal. ");
}
else {
printf("The matrix is NOT diagonal. ");
}

if (isUpperTriangular(matrix, matrixSize)) {
printf("The matrix is upper triangular. ");
}
else {
printf("The matrix is NOT upper triangular. ");
}

if (isLowerTriangular(matrix, matrixSize)) {
printf("The matrix is lower triangular. ");
}
else {
printf("The matrix is NOT lower triangular. ");
}

}

// already implemented for you
int takeInput(int inputMatrix[][MAX_SIZE]) {
int size;
printf("What is the size of your matrix? ");
fflush(stdout);

scanf("%d", &size);

int i;
for (i = 0; i < size; i++) {
int j;
for (j = 0; j < size; j++) {
printf("Please enter the matrix[%d][%d]: ", i, j);
fflush(stdout);

scanf("%d", &inputMatrix[i][j]);
}
}

return size;
}

// TO BE COMPLETED BY YOU :)

int isUpperTriangular(int matrix[][MAX_SIZE], int size) {
int i,j,k=0;

for(i=0;i<size;i++){
for(j=0;j<size;j++){
if(i>j && matrix[i][j]==0)
{
k++;
}
}
}
if(k==size)
return 1;
else
return 0;


}
int isLowerTriangular(int matrix[][MAX_SIZE], int size) {
int i,j,k=0;

for(i=0;i<size;i++){
for(j=0;j<size;j++){
if(i<j && matrix[i][j]==0)
{
k++;
}
}
}
if(k==size)
return 1;
else
return 0;
}
int isDiagonal(int matrix[][MAX_SIZE], int size) {
int i,j,k=0;

for(i=0;i<size;i++){
for(j=0;j<size;j++){
if(i!=j && matrix[i][j]==0)
{
k++;
}
}
}
if(k==size)
return 0;
else
return 1;
}