Pues yo le veo bien a exepcion de un for que tienes de mas en el codigo, ademas de que al crar la variable V agregas directamente el tamaño, bueno yo lo haria asi:
Asi solamente cambio o agrego o quito numeros en el vector y ya no cambio nada mas puesto que ahi mismo agregue la funcion que me indique el tamaño del vector y asi enviar ese resultado a la otra funcion donde sera utilizado, para el for.
#include<stdio.h>
#include<stdlib.h>
int maximapos (int V[], int n)
{
int mejor_valor;
mejor_valor=V[0];
for(int i=1; i < n; i++)
if(V[i] > mejor_valor)
mejor_valor = i;
return mejor_valor;
}
int main ()
{
int V[] = {12,15,3,64,6,2,1};
int posicion, maxvalor, tam;
tam = sizeof(V) / sizeof(int);
posicion = maximapos(V, tam);
maxvalor = V[posicion];
printf("El mejor valor es %d y su posicion es %d \n", maxvalor
, posicion
);
}