Trying to implement some monte carlo simulation for the first time. For the sabr model (http://www.javaquant.net/papers/managing_smile_risk.pdf), would this work?

[![enter image description here][1]][1]

Here, a = volatility of volatility, and s = volatility, and r = correlation of wiener processes.

If its ok, then why does it not produce the same results as the SABR formula does? 

What I do is that I simulate S_T, then I compute max(S_T - K,0) for every simulation, and then calculate average. For some parameter choices, I get the same as SABR, but for others, I get the wrong number, even if I ramp up the sample and time steps. 

So it my code wrong? Is the SABR formula wrong? Which technique produces correct results?
  [1]: https://i.sstatic.net/9h4dN.png