Найдите все доступные комбинации из 3-х цифр

Помогите, пожалуйста, понять, как проверить, что у меня такой же номер, но в другом порядке.

void ft_print_comb(void)
{    
    int hun;
    int doz;
    int uni;

    hun = 0;
    doz = 1;
    uni = 2;

    solver(hun, doz, uni);
}
void print( char f, char se, char thi)
{
    ft_putchar(f);
    ft_putchar(se);
    ft_putchar(thi);
    ft_putchar(',');
}
void solver(int x, int y, int z)
{
    while (x < 9){    
        while (y<8){    
            while (z<7){    
                if (x < y && y < z ){
                    print(x, y, z);
                }
                z++;
            }
            y++;
        }
        x++;
    }
}

Создайте функцию, которая отображает все различные комбинации трех разных цифр в по возрастанию, по возрастанию - да, повторение добровольное.

012, 013, 014, 015, 016, 017, 018, 019, 023, ..., 789

987 нет, потому что 789 уже есть. 999 нет, потому что цифра 9 присутствует более одного раза.

Пожалуйста, укажите минимальный воспроизводимый пример вашей попытки.

George 20.09.2018 14:46

что ты уже испробовал?

Ishpreet 20.09.2018 14:47

Вам необходимо сохранить все сгенерированные комбинации и пройти их. Если нет, вы можете генерировать комбинации без повторения, даже не проверяя, был ли уже сгенерирован текущий набор, с соответствующей рекурсивной функцией / алгоритмом.

KamilCuk 20.09.2018 14:48

Вы должны печатать xyzТолько, когда x < y и y < z! (теперь объясните себе, почему это так)

Antti Haapala 20.09.2018 14:48

Это вопрос домашнего задания?

Yunnosch 20.09.2018 14:52

@ Джордж. Будьте осторожны, запрашивая минимальный воспроизводимый пример. Как правило, это хорошая идея, но она действительно отлично работает только с вопросами «У меня неправильный код». Этот вопрос здесь больше похож на вопрос «Не знаю, с чего начать».

Yunnosch 20.09.2018 14:54

обновил мой пример кода

Vladimir 20.09.2018 14:59
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
7
6 316
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Самый простой способ - убедиться, что вы никогда не создаете такие повторяющиеся числа. Вот пример:

int main(void){
    int i, j, k;
    for (i = 0; i <= 9; i++) {
        for (j = i+1; j <= 9; j++) {
            for (k = j+1; k <= 9; k++) {
                printf("%d%d%d\n", i, j, k);
            }
        }
    }
}

В приведенном выше примере у вас будут все возможные комбинации неповторяющихся чисел в одном и том же порядке. Это всегда будет гарантировать, что i <j <k;

Вы можете найти и другие способы.

Интересно, повлечет ли безобидный конфликт со стандартами более низкую оценку за то, чтобы сдать это как домашнее задание.

Yunnosch 20.09.2018 14:58

@Yunnosch: думаю, ты должен оставить их что-то делать. :-)

Bob Jarvis - Reinstate Monica 20.09.2018 15:04

@BobJarvis Ни в коем случае, если StackOverflow выполняет домашнее задание за кого-то, то на 100%. Вздох. Посмотреть историю редактирования ...

Yunnosch 20.09.2018 15:41

Другие вопросы по теме