Zum einen sind die Datentypen der Variablen nicht angegeben. Das könnte eine mögliche Fehlerursache sein.
Zum anderen soll es vermutlich nicht
ziffer2modulo=ziffer2&100;
sondern
ziffer2modulo=ziffer2%100;
heissen.
So am Rande: Man beginnt meist mit den Einern:
zahl = 1234;
ziffer = zahl % 10; /* Einer */
zahl /= 10;
ziffer = zahl % 10; /* Zehner */
zahl /= 10;
ziffer = zahl % 10; /* Hunderter */
zahl /= 10;
/* ... */
Das hat den Vorteil, dass man weniger Variablen benötigt und der Code sich einfacher fortsetzen oder in einer Schleife umsetzen läßt.