Your grid is the dimension 9x11. Your findSmallest function checks from... 0 to 49? No wonder it doesn't work- you are checking more positions that don't exist than do.
for(row=0;row<9;row++);
for(col=0;col<11;col++);
{
if(ArrayGrid[row][col]<small)
small=ArrayGrid[row][col];
}
cout << "The Smallest Number Is: " << small << endl<<endl;
What is the initial value of `small`? To find out, print the value before you do any searches. Also you don't have a findsmallest function, you have a section of your code that finds smallest and this is all done inside the function `main`
The problem that I see is that you say you are creating an array that is 10x8, then you create an array that is 9x11.
In your first first nested for loop, you populate rows 1 through 8 and columns 1 through 10, completely ignoring anything in row 0 or column 0. Then in the new code snippet, you try to read from rows 0 through 8 and columns 0 through 10.
As discussed in the tutorial page, if you declare an array with dimension n, you get n elements numbered 0 through (n-1). You are not handling that properly.
Additionally, in this new code snippe, you have ';' after each of the for statements. The ';' become the statement that is looped over rather than the intended code block below it. Remove the ';' to get your code closer to running properly.