Мне нужно напечатать всю двоичную строку длины N, считая от 0 до наибольшего числа, которое может быть представлено.Мой код ниже работает для генерации всех строк.Проблема, с которой я сталкиваюсь, состоит в том, что строки не в порядке от минимального к наибольшему.
#define MAX_LENGTH 10
char binarystrings[MAX_LENGTH];
void binary(int n) {
if (n == 0) {
printf("%s\n", binarystrings);
} else {
binarystrings[n-1] = '0';
binary(n-1);
binarystrings[n-1] = '1';
binary(n-1);
}
}
int main() {
int length;
scanf("%d", &length);
binary(length);
}
Когда моя программа принимает 3, она генерирует:
000
100
010
110
001
101
011
111
Но мне нужно этосгенерировать:
000
001
010
011
100
101
110
111
Как мне заставить мою программу вывести числа в правильном порядке?