'create a matrix with specific conditions

I would like to create a matrix with these specifics text of exercise write a program that reads a number k > 0 and a permutation of the first K numbers (from 0 to k-1) that does not fix any element and produce (printing on consecutive lines) permutations p0, . . . , ph such that (1) p0 is permutation given in input; (2) fro every i > 0, pi is the smallest permutation of K cthat does not fix any element and does not collide with any other permutation from p0 and pi−1. We say that 2 permutations p1, p2 ok K collides if exists and index i from 1 to k such that p1(i) = p2(i). my ideas i wanted to create a k*k matrix amd the first row will be the imput of a vector i will declare. I tought to fill the matrix in these way : let's take a specific element v[i][j] v[i][j]is in the matrix if 1)v[k][j] from k =0,...,i-1 is different from v[i][j],1)v[i][k] from k =0,...,i-1 is different from v[i][j],v[i][j] is different from i , and from the remaining possibilities for v[i][j] it is the minimum from the remainin number 0,...k-1 code implementations

#include <stdio.h>
#include <stdlib.h>
#define N 50
typedef int matrix[N][N];
int min(int vector[],int n)
{
    int i;
    int p=0; 
    int min=vector[0];
    for(i=0; i<n;i++)
    {
        if (vector[i]<=min)
        {
            min=vector[i];
            p=i;
        }
    }
    return min;
}

int main()
{
    int k;
    printf("\n insert a number ");
    scanf("%d",&k);
    int v[k][k];//creation of matrix I  wanted
    int input[k];//first row
    
     int arrayindex[k]={0};// array from 0 to k
  for(int u=0; u<k;u++)
  {
      arrayindex[u]=u;
  }
  
  
    printf("insert component of vector:");
    
    for(int l=0;l<k;l++)
    {
        printf("input[%d]= ",l);
           scanf("%d",&input[l]);
    }
    //print vector 
     for(int l=0;l<k;l++)
    {
        printf("%d",input[l]);
          
    }
    printf("\n\n");
    // copy first row
     for(int j=0;j<k;j++)
      {
          v[0][j]=input[j];
      
      }
    
    //printf of first row
      for(int j=0;j<k;j++)
      {
          printf("\nv[0][%d]=%d ",j,v[0][j]);
      
      }
    
    
    //try to fill matrix
    for(int i=1; i<k;i++)
    { 
        for(int j=0;j<k;j++)
      {  
         
            if (j=0){
             v[i][j]!=v[i-1][j];
             v[i][j]!=j;
     v[i][j]=min(arrayindex,k);}
                
                if(j!=0)
                v[i][j]!=v[i-1][j];
                v[i][j]!=v[i][j-1];
                v[i][j]!=j;
                
     v[i][j]=min(arrayindex,k);
     }
                
            }
        
                
           
         
         
      
//print of matrix    
  printf("\n the matrix is:\n ");
    for(int i=0; i<k;i++)
    { printf("\n");
        for(int j=0;j<k;j++)
      {
          printf("%d",v[i][j]);
           
      }
    }
    return 0;
}


the problem in this code is in the section called try to fill matrix . When I compile nothing appear on the screen .Where is the problem ? is at least idea correct?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source