Why can't I print integer using Nios?
Based on the verification error and looking at your Qsys system, there isn't enough RAM.

In Qsys, your RAM goes from 0x4000 to 0x7FFF. However when the JTAG programmer tries to upload the Nios firmware, it tries to verify 0x4000 all the way up to 0xE693. That means the size of your compiled code is a full 0x6694 (26260) bytes larger than the RAM.

By using %i,d or u, you are forcing the compiler to include the full routines for integer to string conversion, which in turn requires division and modulus code. This will use a fair amount of space. Much more so than %s which requires little code.