квадратная матрица размера 5 x 5, заполненная целыми числами так, что в каждой строке и каждом столбце ровно по одному нулевому элементу

Помогите Вместо ручного ввода цифр, сделать рандомный, Но чтобы в каждой строке и каждом столбце ровно по одному нулевому элементу.

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
// Ввод элементов массива
void print_matrix(int a[5][5])
{
int i, j;
 

for (i = 0; i < 5; i++) // цикл по строкам
{
    for (j = 0; j < 5; j++) // цикл по столбцам
    {
        
    
        printf("a[%d][%d] = ", i, j);
        scanf_s("%d", &a[i][j]);
    
    }
}
}
// Ввывод элементов массива
void out_matrix(int a[5][5]) {
int i, j;
for (i = 0; i < 5; i++)  // цикл по строкам
{
    for (j = 0; j < 5; j++) // цикл по столбцам
    {
        printf("%d ", a[i][j]);
    }
    printf("\n");
  }
  }
  //Перестановка строк
  void zam_matrix(int a[5][5]) {
  for (int i = 0; i < 5; i++)
  {
    for (int j = 0; j < 5; j++)
    {
        if (a[i][j] == 0)
        {
            int m = j;

            for (int l = 0; l < 5; l++)
            {
                int k = a[i][l];
                a[i][l] = a[m][l];
                a[m][l] = k;
            }
        }
    }
}
}

void main()
{
    int a[5][5];
    print_matrix(a);
    out_matrix(a);
    zam_matrix(a);
    printf("After:\n");
    out_matrix(a);
}

Ответы (0 шт):