Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

/* Give me a one page write up of line by line what the code below is doing .*/

ID: 665800 • Letter: #

Question

/*Give me a one page write up of line by line what the code below is doing.*/


#include <stdio.h>

#define IMAX 5
#define JMAX 4

FILE *inptr;

int main()

{

float elevation[IMAX][JMAX];
float rowmax, rowmin, colmax, colmin;
int jrmax[IMAX], jrmin[IMAX], icmax[JMAX], icmin[JMAX];

int i,j;

inptr = fopen("elevation.dat", "r");

printf("INPUT a %d by %d array from a data file: ", IMAX, JMAX);

  for(i=0; i < IMAX; i++)
  {
   for(j=0; j < JMAX; j++)
   {
    fscanf(inptr, "%f", &elevation[i][j]);
   }
  }

for(i = 0; i<IMAX; i++)
{
  rowmax = elevation[i][0];
  rowmin = rowmax;
  jrmax[i] = 0;
  jrmin[i] = 0;

   for(j = 0; j< JMAX; j++)
   {
    if(rowmax<elevation[i][j])
    {
     rowmax = elevation[i][j];
     jrmax[i] = j;
    }

     if(rowmin>elevation[i][j])
     {
      rowmin = elevation[i][j];
      jrmin[i] = j;
     }

   }
}

for(j = 0; j<JMAX; j++)
{
  colmax = elevation[0][j];
  colmin = colmax;
  icmax[j] = 0;
  icmin[j] = 0;

   for(i = 1; i< JMAX; j++)
   {
    if(colmax<elevation[i][j])
    {
     colmax = elevation[i][j];
     icmax[j] = i;
    }

     if(colmin>elevation[i][j])
     {
      colmin = elevation[i][j];
      icmin[j] = i;
     }

   }
}


printf("OUTPUT ");


printf("   Saddle Points ");

printf("  row  column elevation ");

for(i=0; i<IMAX; i++)
{
  j = jrmax[i];
  if(icmin[j]==i)
  {
   printf("  %d  %d %5.2f ", i, j, elevation[i][j]);
  }

  j = jrmin[i];
  if(icmax[j]==i)
  {
   printf("  %d  %d %5.2f ", i, j, elevation[i][j]);
  }

}


return 0;
}

Explanation / Answer

#include <stdio.h>

#define IMAX 5
#define JMAX 4

FILE *inptr;

int main()

{

float elevation[IMAX][JMAX];
float rowmax, rowmin, colmax, colmin;
int jrmax[IMAX], jrmin[IMAX], icmax[JMAX], icmin[JMAX];

int i,j;

inptr = fopen("elevation.dat", "r");

printf("INPUT a %d by %d array from a data file: ", IMAX, JMAX);

  for(i=0; i < IMAX; i++)
  {
   for(j=0; j < JMAX; j++)
   {
    fscanf(inptr, "%f", &elevation[i][j]);
   }
  }

for(i = 0; i<IMAX; i++)
{
  rowmax = elevation[i][0];
  rowmin = rowmax;
  jrmax[i] = 0;
  jrmin[i] = 0;

   for(j = 0; j< JMAX; j++)
   {
    if(rowmax<elevation[i][j])
    {
     rowmax = elevation[i][j];
     jrmax[i] = j;
    }

     if(rowmin>elevation[i][j])
     {
      rowmin = elevation[i][j];
      jrmin[i] = j;
     }

   }
}

for(j = 0; j<JMAX; j++)
{
  colmax = elevation[0][j];
  colmin = colmax;
  icmax[j] = 0;
  icmin[j] = 0;

   for(i = 1; i< JMAX; j++)
   {
    if(colmax<elevation[i][j])
    {
     colmax = elevation[i][j];
     icmax[j] = i;
    }

     if(colmin>elevation[i][j])
     {
      colmin = elevation[i][j];
      icmin[j] = i;
     }

   }
}


printf("OUTPUT ");


printf("   Saddle Points ");

printf("  row  column elevation ");

for(i=0; i<IMAX; i++)
{
  j = jrmax[i];
  if(icmin[j]==i)
  {
   printf("  %d  %d %5.2f ", i, j, elevation[i][j]);
  }

  j = jrmin[i];
  if(icmax[j]==i)
  {
   printf("  %d  %d %5.2f ", i, j, elevation[i][j]);
  }

}


return 0;
}