Write a program to check whether a matrix (use dynamic memory allocation
to create the matrix) is
i)Upper Triangular
ii)Lower Triangular
#include #include #include int chkUpper(int**,int,int); int chkLower(int**,int,int); void main() { int **a; int noOfRows,noOfCols; int i,j; int upper,lower; clrscr(); printf("\nEnter Number Of Rows: "); scanf("%d",&noOfRows); printf("\nEnter Number Of Columns: "); scanf("%d",&noOfCols); if(noOfRows!=noOfCols) { printf("\nThe Matrix Is Not A Square Matrix So It Cannot Be Verified"); printf("\nPress Any Key To Exit.."); getch(); return; } a=(int**)calloc(noOfRows,sizeof(int*)); for(i=0;i<noOfRows;i++) a[i]=(int *)calloc(noOfCols,sizeof(int *)); printf("\nEnter Elements Of %d X %d Matrix: \n",noOfRows,noOfCols); for(i=0;i<noOfRows;i++) for(j=0;j<noOfCols;j++) scanf("%d",a[i]+j); printf("\nThe Matrix You Entered Is: \n"); for(i=0;i<noOfRows;i++) { for(j=0;j<noOfCols;j++) { printf("%d ",a[i][j]); }/*End of j for loop*/ printf("\n"); }/*End of i for loop*/ upper=chkUpper(a,noOfRows,noOfCols); lower=chkLower(a,noOfRows,noOfCols); if(upper==1) printf("\nThe Matrix Is A Upper Triangular"); else printf("\nThe Matrix Is Not A Upper Triangular"); if(lower==1) printf("\nThe Matrix Is A Lower Triangular"); else printf("\nThe Matrix Is Not A Lower Triangular"); getch(); } int chkUpper(int**a,int rows,int cols) { int i,j; for(i=0;i<rows;i++) { for(j=0;j<cols;j++) { if(i>j) { if(a[i][j]!=0) return 0; }/*End of if*/ if(i<=j) { if(a[i][j]==0) return 0; }/*End of if*/ }/*end of j for loop*/ }/*end of i for loop*/ return 1; }/*End of function int chkUpper(int**,int,int)*/ int chkLower(int**a,int rows,int cols) { int i,j; for(i=0;i<rows;i++) { for(j=0;j<cols;j++) { if(i<j) { if(a[i][j]!=0) return 0; }/*End of if*/ if(i>=j) { if(a[i][j]==0) return 0; }/*End of if*/ }/*end of j for loop*/ }/*end of i for loop*/ return 1; }/*End of function int chkLower(int**,int,int)*/