Bir kere algoritma yanlış. Kodu nerden yaptın, neye dayanarak yaptın, nereden öğreniyorsun bilmiyorum. for b == a'nın Türkçesi; a eşittir b için demektir. Yani a, b'ye eşit olduğu müddetçe loopta olacak. Bu da hiç bir zaman. b <= a yazman lazım ki artarken çarpsın ve en sonunda kendiyle çarpılsın. Doğru loop;
C:
for(b = 1; b <= a; b++) {
c = c * b;
}
Bunu yazdırdığında faktöriyel doğru bir şekilde çıkmalı.