logo

Dynamic padding in format strings in C

#include <stdio.h> #include <stdlib.h> #include <time.h> int num_digits(int x) { int digits = 0; while (x > 0) { x /= 10; digits++; } return digits; } int main(int argc, char* argv[]) { int arr[5] = { 10, 103314, 884, 1, 3011 }; int max_digits = 0; for (int i = 0; i < 5; i++) { int digits = num_digits(arr[i]); if (digits > max_digits) { max_digits = digits; } } for (int i = 0; i < 5; i++) { printf("%0*d\n", max_digits, arr[i]); } return 0; }