your using the value R in both for loops, I'm suspecting thats your prob:
or you could reference the position instead of writing it to variable highest.
void find_high(double marks[ROWS][COLS],int r,int c)
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.