Podrías poner que el usuario ingrese -1 (por ejemplo) para finalizar la carga de datos, osea, si dijo que va a ingresar 4 datos pero en realidad eran 3, entonces pone -1 y termina... con un while lo podrías hacer....
Otra cosa, abajo del printf que pide los datos, en la linea 18 pusiste max=dato; osea, estas inicializando max con el valor de dato, pero a dato todavía no lo inicializaste, osea que le estas metiendo "basura" a la variable max... podes hacer dos cosas que se me ocurren ahora, poner un
scanf("%d", &dato); asi:
Código C:
Ver originalprintf ("\nEscribe los datos: "); scanf("%d", &dato
); //linea agregada max=dato;
for (k=1; k<=ndatos; k++)
{
if (dato>max)
{
max=dato;
ubi=k;
}
scanf("%d", &dato
); // linea agregada }
o sino inicializar
int dato=0; por ejemplo... asi cualquier numero que entre va a ser mas grande.
Saludos