Bondhu
unknown
c_cpp
a year ago
1.8 kB
8
Indexable
/* * Write a program in any language to find the sum of rows and columns of a m x n matrix, * where m and n is taken input from the user. Give the output in the following format * input * 4 * 3 matrix * 1 2 3 4 * 5 6 7 8 * 9 0 1 2 * * output * 1 2 3 4 | 10 * 5 6 7 8 | 26 * 9 0 1 2 | 12 * ----------|----- * 15 8 11 14| * */ #include <stdio.h> #include <string.h> int main() { // Initializing row and column count; int row = 0, col = 0; // Taking row and column input; scanf("%d %d", &row, &col); printf("Number of rows and columns: %d %d\n", row, col); // From example, we saw, there will be an extra row and an extra column; // That's why decalring an m+1 * n+1 matrix // this will make calculation easier int matrix[row+1][col+1]; // Setting all of the entries of matrix to 0, mainly needed for result memset(matrix, 0, sizeof(matrix)); // Essential variable for loop int i,j; // Initial state of our matrix printf("Matrix initial\n"); for (i=0;i<row + 1;i++) { for (j=0;j<col + 1;j++) { printf("%d ", matrix[i][j]); } printf("\n"); } // While we are taking input, we are also adding current number to row result mat[currentRow][column] entry. // We are also adding current number to column result entry matrix[row][currentColumn] // If we do this way, then we don't need to do another O(n^2) loop for (i=0;i<row;i++) { for (j=0;j<col;j++) { scanf("%d", &matrix[i][j]); matrix[i][col] += matrix[i][j]; matrix[row][j] += matrix[i][j]; } } printf("Matrix after input\n"); for (i=0;i<row + 1;i++) { for (j=0;j<col + 1;j++) { // Skipping last entry if (i == row && j == col) continue; printf("%d ", matrix[i][j]); } printf("\n"); } return 0; }
Editor is loading...
Leave a Comment