scan_b(c[100][100] ,k,l);
print_b(c[100][100] ,k,l);
Because doing like that passes the element at 100, 100 (which does not exist, btw) to a function which expects an array.
And it's bad practice to strip the names of the arguments from the prototypes.
For example:
void scan_b(double , int , int );
Is better as:
void scan_b(double array, int rows, int columns);