You are given an integer 51234 (say) we need to sort the digits of a number the output will be 12345.
How to do it without using array ?
You can use a loop and % 10 to extract each digit.
An outer loop from 0 to 9 could be used to test if the digit exists. If it exists, print it.
In pseudo code:
n = integer // 51234
FOR digit = 0 TO 9
  temp = n
  REPEAT
    IF temp % 10 = digit THEN PRINT digit
    temp /= 10
  UNTIL temp = 0
Edit: This test in gcc shows that it handles zeros and repeated digits:
$ cat sortdigits.c
#include <stdio.h>
main () {
 int n,digit,temp;
 n = 43042025;
 for (digit=0;digit<9;digit++)
   for (temp=n;temp>0;temp/=10)
     if (temp%10==digit) printf("%d",digit);
 printf("\n");
}
$ ./sortdigits
00223445
                        You don't need to write a program at all, just do it with shell commands:
echo "51234" | sed 's+\(.\)+\1\n+g' | sort | tr -d '\n'
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With