>>205
えーっと、4ビットずつBCD変換して、(最下桁の総和 mod 10) を
元の数から引いてます。ループは最大でも (sizeof long * 2) 回。

>>208
waru10() という関数名と処理が乖離しまくってますが。