You originally asked about a particular problem, with function shipplacement
What I see here is the prototype:
void shipplacement(int Xcoordinate, int Ycoordinate, char shipboard);
and the definition:
void shipplacement(char shipboard)
Notice the parameter lists are different. They should match, in the number and type of each parameter.
And then in function main(), there is a call to the function
The number and type of the parameters in the call doesn't match either of the previous two versions.
You need to consider the design of the function, what parameters does it require, in order to work. Then use those in the function definition.
After that, copy and paste from the definition, to give you the prototype.
And last but not least, make sure that when you call the function, the parameters you pass match those you previously specified.
(the names of the parameters may change, but the number, type and order must agree in each of the three usages).
As for validmove
, you have defined the function, but in function main() rather than calling it with the required parameters, the code simply states the function name, like this:
. In order to call the function, you need to add the parentheses and the parameters which are required by the function.