Why is the following grammar not LL(1)
LL(1) grammars must be unambiguous, have no left recursion, and no conflicts.
The grammar you provide is unambiguous in terms of the syntax tree, however there are conflicts when parsing (which stops it from being an LL(1) grammar). The conflicts reside in the first set of S and C. That is to say, FIRST(S) = { b }, but its ambiguous in which production rule to apply: S -&gt; bAb or S -&gt; bBa. This can be eliminated by factoring out the b as such:
S  -&gt; b S'
S' -&gt; A b | B a

Similarly for C:
C  -&gt; c C'
C' -&gt; c C' | eps

The grammar also has left recursion in the rule B -&gt; Bc; this is the definition of left recursion. This can be removed as such:
B   -&gt; b B'
B'  -&gt; c B' | B''
B'' -&gt; c

Check the following for more information:

LL parser: https://en.wikipedia.org/wiki/LL_parser
Left recursion: https://en.wikipedia.org/wiki/Left_recursion
CFG checker (including LL(1)): http://smlweb.cpsc.ucalgary.ca/