Noise when dividing or multiplying signal in C
In processing integer audio samples, simple non-scaled integer division can introduce quantization noise (rounding errors).  

You might try doing your amplitude scaling using a higher resolution format (floats or scaled integers with more fractional bits) for your arithmetic, and then perform appropriate noise filtering (dithering or noise shaping of the remainder from the quantization process) if a shorter integer result is required.

Also watch out for integer overflow (e.g. make sure your number formats can hold the full range of expected arithmetic results).