Δημοσιεύτηκε: 29 Μαρ 2012, 16:58
από Ilias95
Ορίστε:
Μορφοποιημένος Κώδικας: Επιλογή όλων
#include <stdio.h>

#define ABSOLUTE_VALUE(x) ((x) >= 0 ? (x) : (-(x)))

int number_digits(int x)
{
int i;

if (!x) return 0;

x = ABSOLUTE_VALUE(x);
for (i = 0; x; x /= 10, i++);

return i;
}

int main(void)
{
int i, y, digits;

for (i = 1; i <= 30000; i++) {
digits = number_digits(i-1);
for (y = 0; y < digits; y++)
putchar('\b');
printf("%d", i);
}
return 0;
}


Την number_digits() την έγραψα αμέσως, ένα χαζό λάθος είχα στη λογική του loop που μου πήρε κάποια ώρα να το βρω.
Επίσης, νομίζω η number_digits() είναι re-usable. :P