ma tran latinh

//ma tran vuong A goi la ma tran latinh neu moi hang moi cot cua no deu la hoan vi cua {1..n}

//nhap ma tran A va kiem tra tinh chat noi tren

#include <stdio.h>

#include <conio.h>

void nhap(int a[][30],int n)

{

 int i,j;

 for(i=0;i<n;i++)

 for(j=0;j<n;j++)

 {

  printf("a%d%d = ",i+1,j+1);scanf("%d",&a[i][j]);

 }

}

void in(int a[][30], int n)

{

 int i,j;

 for(i=0;i<n;i++)

 {

  printf("

");

  for(j=0;j<n;j++)

  printf("%3d",a[i][j]);

 }

}

int ktra_hang(int a[][30],int n,int i)

{

 int j,t,kt=1,k=1;

 for(j=0;j<n;j++)

  if(a[i][j]>n||a[i][j]==0)

  {

    kt=0;

    break;

  }

  j=0;

  if(kt==0) k=0;

  else

  while(j<n&&k==1)

  {

    for(t=0;t<n;t++)

    if(a[i][j]==a[i][t]&&t!=j)

    {

     k=0;

     break;

    }

    j++;

  }

 return k;

}

int ktra_cot(int a[][30],int n,int j)

{

 int i,t,kt=1,k=1;

 for(i=0;i<n;i++)

 if(a[i][j]>n||a[i][j]==0)

 {

  kt=0;

  break;

 }

 i=0;

 if(kt==0)  k=0;

 else

 while(i<n&&k==1)

 {

  for(t=0;t<n;t++)

  if(a[i][j]==a[t][j]&&t!=i)

  {

    k=0;

    break;

  }

  i++;

 }

 return k;

}

int main()

{

 int a[30][30];

 int  n,i,j,kt=1,t=1;

 printf("nhap cap cua ma tran n = ");scanf("%d",&n);

 printf("nhap ma tran :

");

 nhap(a,n);

 clrscr();

 printf("ma tran A la: ");

 in(a,n);

 for(i=0;i<n;i++)

 if(ktra_hang(a,n,i)==0)

 {

  kt=0;

  break;

 }

 if(kt==0) t=0;

 else

 for(j=0;j<n;j++)

 if(ktra_cot(a,n,j)==0)

 {

  t=0;

  break;

 }

 if(t==0) printf("

ma tran vua nhap khong phai la ma tran latinh");

 else printf("

ma tran vua nhap la ma tran latinh");

 getch();

 return 0;

}

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: