The best way is: go buy a book.
Vectors are cool, but unless you're using them as a vector, by adding, removing, and modifying, they're pointless.
How is this set up?
Remember, all arrays are zero-based. So a statement like this:
0 x x
col 1 x x
2 x x
3 x x
Also, why do this:
for( int col = 1; col < table[row].size(); col++ )
When you can replace table.size() with ROWS and the other with COLUMNS? Its more efficient.
cout << "Number of Rows: " << table.size() << "\n";
cout << "Number of Columns: " << table.size() << "\n";
Why does it print zeros? Because you filled it with zeros. Remember this?
That 0.0 is filling the whole collums with zeros. And no where in your code do you fill it up with somthing else.
vector< vector<double> > table(ROWS,
vector<double>(COLUMNS, 0.0) ) ;
BTW, I can't make sense of your program, it just doesn't make any sense on what you're doing. You're output routine is very wierd, printing everything bottom-right of the coordinates (x,y)the user entered...