c - Multiplying the main diagonal of a matrix with a number -


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