La variable "can" tiene 10 elementos, uno por cada cifra. Inicialmente se inicializan todas sus posiciones a 0. Cada vez que introduces un número incrementas el índice de "can" correspondiente ( el 0 si se introduce un 0, el 1 si se introduce un 1, ...). Tras estas iteraciones, en can[0] tendrás un valor equivalente al número de 0s, en can[1] el número total de 1s y así. Finalmente, recorres "can" y te quedas con el índice que tiene el valor más alto y listo.
Por cierto, así a bote pronto:
Código C:
Ver originalfor(i=0; i<ELEMENTS; i++) if (can[i] > maximo) maximo = i;
si máximo almacena el índice... el chequeo "can[i]>maximo" no es correcto porque estás comparando un índice con un valor... tendría que ser "can[i] > can[maximo]". No?