剰余の値を格納する操作がありますが、剰余が 0291 であることが判明した場合、291 のみを格納するため、変数に 0 も格納する必要があります。
手術:
lk = ((lk + tc + vc) * 1671) % 10000;
long int 型の lk を使用
剰余の値を格納する操作がありますが、剰余が 0291 であることが判明した場合、291 のみを格納するため、変数に 0 も格納する必要があります。
手術:
lk = ((lk + tc + vc) * 1671) % 10000;
long int 型の lk を使用
先行ゼロを何個前に付けても問題ありません。それでも 291 です。これは、モジュラス演算子や数学演算とは関係ありません。
あなたが求めているのは、数字がどのように表示されるかです。
これを試して:
printf("%04ld", lk);
ソース:man printf