Удвоить двумерный массив

Помогите пожалуйста дописать код к задачке на СИ. Не получается удвоить двумерный массив.
Дан двумерный массив размером n*m, заполненный случайными числами из заданного пользователем промежутка. Удвоить все строки и столбцы, содержащие ноль, вывести результат на экран и в файл.

#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <locale.h>

int main() {
FILE *f;
    setlocale(LC_ALL, "RUS");
    f = fopen("lala.txt","r");
    int a[3][3];
    int i,j;
    int n = 3;
    int x1,x2;

int d,l;
    srand(time(NULL));

   printf("Введите промежуток значений от x1 до x2:\n");
   printf("x1: ");
   scanf("%d",&x1);
   printf("x2: ");
   scanf("%d",&x2);



    for (i = 0; i < 3; i++) {

        for (j = 0; j < 3; j++) {
            a[i][j] = rand() % (x2-x1)+x1;
            printf("%d\t", a[i][j]);
        }
        printf("\n");
    };
    printf("\n");

   for (int i=0;i<3;i++)
    for (int j=0;j<3;j++)
   {
       if (a[i][j]==0)
    for (l=0;l<i+1;l++)
        for(d=0;d<j+1;d++)
        a[l][d]=a[l][d]*2;
   }
for (i=0;i<3;i++){
    for (j=0;j<3;j++){
    printf("%d\t ",a[i][j]);}printf("\n");}
return 0;
}

А удвоить это как? Если нашли столбец с 0, то рядом с ним создать еще один такой же что ли? Или просто умножить все его значения на 2?

Получается, если есть 0, нужно все значения столбца и строки где он находится умножить на 2

И вывести уже другой двумерный массив (матрицу) которая уже умножена на 2

Тут наверно проще отдельно цикл для удвоения столбца и цикл для удвоения строки.