Largest and Smallest from mxn Matrix using Pointer and User Defined Function


Question: Write a Program in c to find largest and smallest element from mxn matrix using concept of passing 2-Dimensional array to the user defined function and pointer.

Program


#include<stdio.h>
#include<conio.h>

/* Function Prototypes */
float getLarge(float *p, int m, int n);
float getSmall(float *p, int m, int n);

int main()
{
 float a[10][10],large, small;
 int m,n,i,j;
 clrscr();
 printf("Enter row and column size:\n");
 scanf("%d%d", &m, &n);
 for(i=0; i< m; i++)
 {
  for(j=0; j< n; j++)
  {
   printf("a[%d][%d]=",i,j);
   scanf("%f",&a[i][j]);
  }
 }
 /* Function Calls */
 large = getLarge(&a[0][0], m, n);
 small = getSmall(&a[0][0], m, n);
 /* Output */
 printf("Large value in matrix is: %0.3f\n", large);
 printf("Small value in matrix is: %0.3f\n", small);

 getch();
 return 0;
}
/* Function Definition for getLarge() */
float getLarge(float *p, int m, int n)
{
 float lg = *p;
 int i,j;
 for(i=0;i< m;i++)
 {
  for(j=0;j< n;j++)
  {
   if(*(p+10*i+j)>lg)
   {
    lg = *(p+10*i+j);
   }
  }
 }
 return lg;
}
/* Function Definition for getSmall() */
float getSmall(float *p, int m, int n)
{
 float sm = *p;
 int i,j;
 for(i=0;i< m;i++)
 {
  for(j=0;j< n;j++)
  {
   if(*(p+10*i+j)< sm)
   {
    sm = *(p+10*i+j);
   }
  }
 }
 return sm;
}