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