Just a quick reply, as it's late here. I don't know C++ so I can't really comment in detail. But your program contains a lot of "magic numbers" which would be better represented as symbols.
And your 3x3 matrix multiplication routine should use loops, not be written out in long form as you've done! Same for the determinants. Given two square nxn matrices A and B, two matrix products are possible, AB and BA. In general AB != BA. For the adjoint, see: http://en.wikipedia.org/wiki/Adjugate_matrix As a matter of structure, it would be better to make each operation into a separate function. Then each function can be developed and tested separately. It's also a lot easier to understand a program if it's divided into small chunks, each of which has a well-defined purpose. David
