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 ?
See Question&Answers more detail:osYou 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 ?
See Question&Answers more detail:osYou 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("
");
}
$ ./sortdigits
00223445