Estas mezclando C y C++ en un compilador de C++.
Cuando en C++ pasas un argumento a una función cuyo argumento esté prototipo con un & pasas una referencia y por tanto ese dato será modificado.
En contdigitos has variado el valor de n, cuando se lo entregas a maiordig ya no tienes el valor n original sino el que te dejó contdigitos.
Cuando en C++ pasas un argumento a una función cuyo argumento esté prototipo con un & pasas una referencia y por tanto ese dato será modificado.
En contdigitos has variado el valor de n, cuando se lo entregas a maiordig ya no tienes el valor n original sino el que te dejó contdigitos.