No final da aula nos vimos o que aconteceu. Na realidade eu havia usado a expressão assim:
--------------------------------------------
linha[i] == '|' ? linha[i] = '*': linha[i] = '+';
--------------------------------------------
O problema ocorre porque, em razão da precedência, a expressão é avaliada até
--------------------------------------------
linha[i] == '|' ? linha[i] = '*': linha[i]
--------------------------------------------
e não chega em
--------------------------------------------
= '+';
--------------------------------------------
daí o erro. Se forem colocados parenteses, tudo bem, fica resolvido.
--------------------------------------------
linha[i] == ('|' ? linha[i] = '*') : (linha[i] = '+';)
--------------------------------------------
Mas o mais adequado é escrever da seguinte forma, segundo o prof.:
--------------------------------------------
linha[i] = (linha[i] == '|') ? '*': '+';
--------------------------------------------
Artur
Forum