Il problema è che stai usando degli Int16, per cui viene usata l'aritmetica per interi a 16 bit, che vanno in overflow superato il valore 32767. Per questo genere di conti ti conviene usare i Double.
Il problema è che stai usando degli Int16, per cui viene usata l'aritmetica per interi a 16 bit, che vanno in overflow superato il valore 32767. Per questo genere di conti ti conviene usare i Double.
Amaro C++, il gusto pieno dell'undefined behavior.