GNU GCC compiler
Here is a function: int sumsintriangle(int *a,int n)
where a is a n*n matrix  .
  for some purpose I added 
if(*(a+(i+1)*n+(j+1)) > *(a+(i+1)*n+j))
condition to my code which was working properly ;as the condition is true for the correct values. but for the same code when I added
sum=sum + *(a+(i+1)*n+(j+1));
then it didn't work (eg;let say sum was initially 1 and *(a+(i+1)*n+(j+1) was 4 ) then summation it should be giving me 5..but it gives me 1 as output...why??
 Even ,when I called the same value *(a+(i+1)*n+(j+1)) in printf function,for just an enquiry, it is giving me 4 (original value)as output ...?
Why it is  , that *(a+(i+1)*n+(j+1)) is working properly with printf but when I  called it with sum it gives me incorrect value? 
 
     
    