% — starts a conversion specification;. I assume this unexpected result is from printing the unsigned long long int.
%lu is a valid conversion specification, %ul is not.. L — the length modifier, l means [unsigned] long int;