Wednesday, November 26, 2014

Bài 1.4: Cho ma trận có m hàng, n cột. Viết chương trình có sử dụng hàm đệ quy cho biết giá trị lớn nhất, giá trị nhỏ nhất của ma trận.

Tìm min,max trên từng hàng rồi tìm min,max của các min,max đó để tìm ra giá trị min,max của ma trận
#include <stdio.h>
#include <conio.h>
void nhap( inta[][50],int m, intn)
{
      int i,j,tg;
      for(i=0;i<m;i++)
      for(j=0;j<n;j++)
      {
            printf("a[%d][%d]= ",i,j); scanf("%d",&tg);
            a[i][j]=tg;
      }
}
void xem( inta[][50],int m,intn)
{
      int i,j;
      printf("\n xem mang vua nhap:\n");
      for(i=0;i<m;i++)
      {
            for(j=0;j<n;j++) printf("%5d",a[i][j]);
            printf("\n");
      }
}
int min1( inta[][50], int m,intn)
{
      if(n==0) returna[m][n];
      if(a[m][n]<min1(a,m,n-1)) return a[m][n];
      returnmin1(a,m,n-1);
}
int min( inta[][50], int m, intn)
{
      if(m==0) returnmin1(a,m,n);
      if ( min1(a,m,n)<min(a,m-1,n)) return min1(a,m,n);
      returnmin(a,m-1,n);
}
int max1(inta[][50],int m,intn)
{
      if (n==0)returna[m][n];
      if(a[m][n]>max1(a,m,n-1)) return a[m][n];
      return max1 (a,m,n-1);
}
int max(inta[][50],int m,intn)
{
      if(m==0) returnmax1(a,m,n);
      if(max1(a,m,n)>max(a,m-1,n)) returnmax1(a,m,n);
      returnmax(a,m-1,n);
int main()
{
      int a[50][50],m,n;
      printf("Nhap so cot cua ma tran n = "); scanf("%d",&n);
      printf("Nhap so hang cua ma tran m = "); scanf("%d",&m);
      if((n<=0)||(m<=0)) printf("so hang so cot ban nhap ko hop le!");
      else
      {
            nhap(a,m,n);
            xem(a,m,n);
            printf("\n min =  %d",min(a,m-1,n-1));
            printf("\n max =  %d",max(a,m-1,n-1));
      }
      getch();
}

No comments:

Post a Comment