your using the value R in both for loops, I'm suspecting thats your prob:
Code:
void find_high(double marks[ROWS][COLS],int r,int c)
{
int i,j,highest=0;
for (j=0;j<r;j++)
for (i=0;i<c;i++)
if (marks[j][i]>highest)
highest=marks[j][i];
}
or you could reference the position instead of writing it to variable highest.
you would also have a problem because I think you were reading the wrong way or atleast top to bottom rather than accross ways (rows rather than columns) and you if you had a full list then in your if statement your trying to compare it with a value that isnt defined by doing the +1.
This function will give you the highest number in the entire list, if you wanted for each one then remove the first for statement.