my program has receive number k, 4x4 matrix , k must multiply main diagonal of matrix. output should input matrix, however, main diagonal of multiplied k. exemple, give k = 2 , following matrix:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 the output should be:
2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 but program give following output:
2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 why that? how can multiply main diagonal , not first number of matrix?
my code:
#include <stdio.h> int main() { int k; int mult = 0; int matrix[4][4]; int row, column; (row = 0; row < 4; row++) { (column = 0; column < 4; column++) { scanf("%d", &matrix[row][column]); } } for(row = 0 ; row < 4 ; row++) { for(column = 0 ; column < 4 ; column++) { printf("%3d", matrix[row][column]); mult = k * matrix[row][row]; } printf(" \n"); } return 0; }
if want change matrix values change loop operation this:
for(row = 0 ; row < 4 ; row++) { for(column = 0 ; column < 4 ; column++) { if ( row == column ) matrix[row][column] *= k; printf("%3d", matrix[row][column]); } printf(" \n"); }
Comments
Post a Comment