I valori che partono dal char, sono i corrispondenti ASCII ... se scrivi 1, memorizzerai il valore binario 1 e non l'ASCII corrispondente del valore 1 ...

Quindi, o scrivi

array[20] = '1';

o anche

array[20] = 1 + '0';