Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2013, 01:29   #1
Elnamir
Пользователь
 
Регистрация: 21.03.2013
Сообщений: 13
По умолчанию Список четырехзначных чисел без повторения чисел

Код:
#include <iostream>
#include <stdlib.h>

bool func(int,int,int,int);
int main()
{
    int mas[1000];
    int n = 0;
    for(int i = 0; i < 10; i++)
        for(int j = 0; j < 10; j++)
            for(int k = 0; k < 10; k++)
                for(int h = 0; h < 10; h++)
                    if(func(i,j,k,h))
                    {
                        mas[n] = i*1000+j*100+k*100+h;
                        n++;
                    }
    for(int i = 0; i < n;i++)
    {
        printf("%d\n",mas[i]);
    }
    return 0;
}
 bool func(int a,int b,int c,int d)
 {

     if(a!=b && a!=c && a!=d && b!=c && b!=d && c!=d)
         return true;
     else
         return false;
 }
Почему не работает? Понимаю выглядит как быдлокод, но мне лень придумывать что то новое
Elnamir вне форума Ответить с цитированием
Старый 16.05.2013, 11:47   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я бы записал это так:
Код:
    int n = 0;
    for(int i = 1; i < 10; i++)
        for(int j = 0; j < 10; j++)
.....

 bool func(int a,int b,int c,int d)
 {
      return ( (a!=b) && (a!=c) && (a!=d) && (b!=c) && (b!=d) && (c!=d) );
 }
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.05.2013, 16:19   #3
Elnamir
Пользователь
 
Регистрация: 21.03.2013
Сообщений: 13
По умолчанию

Ну у меня проблема в том,что когда компилю и запускаю, у меня сразу же прекращена работа программы
Elnamir вне форума Ответить с цитированием
Старый 16.05.2013, 20:14   #4
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

system("pause") в main() перед return поставьте.
Или воспользуйтесь командой Выполнить в Windows, где введите путь к исполняемому файлу.
Igor95 вне форума Ответить с цитированием
Старый 16.05.2013, 23:01   #5
Elnamir
Пользователь
 
Регистрация: 21.03.2013
Сообщений: 13
По умолчанию

У меня ошибка, прекращена работа программы, без вывода чисел
Elnamir вне форума Ответить с цитированием
Старый 16.05.2013, 23:15   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Очевидно, что таких чисел не 1000, а 5040.
Правда, у Вас будут все числа, а не только четырехзначные.
Всего нужных четырехзначных чисел - 4536.
Код:
#include <iostream>
#include <stdlib.h>
 
int
main()
{
    int n = 0, i, j, k, h;
    for(i = 1; i < 10; i++) {
        j = -1;
        while (++j < 10) {
            if (j == i) continue;
            k = -1;
            while (++k < 10) {
                if (k == i || k == j) continue;
                h = -1;
                while (++h < 10) {
                    if (h == i || h == j || h == k) continue;
                    printf("%d%d%d%d\n", i, j, k, h);
                    ++n;
                }
            }
        }
    }
    printf("count: %d\n", n);
    return 0;
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 16.05.2013 в 23:33.
BDA вне форума Ответить с цитированием
Старый 16.05.2013, 23:33   #7
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Почему не работает? Понимаю выглядит как быдлокод, но мне лень придумывать что то новое
Если бы только "выглядит". Кто Вам сказал, что размерность массива 1000 достаточна?
Abstraction вне форума Ответить с цитированием
Старый 16.05.2013, 23:39   #8
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Очевидно, что таких чисел не 1000, а 5040.
Вы не правы.
Вы забываете, что 0 не может стоять в начале.
Поэтому берем размещения из 10 по 4. и вычитает 7 * 8 * 9, того получим 4536.
Poma][a вне форума Ответить с цитированием
Старый 16.05.2013, 23:42   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Цитата:
Вы не правы.
Я смотрел на циклы (массив нужен на 5040, а не на 1000, для таких циклов), а не на условие задачи.
Согласен, что четырехзначных именно 4536.

Цитата:
Сообщение от Poma][a Посмотреть сообщение
Тогда простите, я не понял смысла Вашей фразы. Да и еще когда проверял свою гипотезу на паскале, то забыл обновить страницу.. так что еще раз простите..
Да ее и не поймешь без объяснения, наверное Окружающие замечают, что говорю иногда непонятно. В голове пронесется больше мыслей, а они услышат только результат.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 16.05.2013 в 23:49.
BDA вне форума Ответить с цитированием
Старый 16.05.2013, 23:45   #10
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Я смотрел на циклы (массив нужен на 5040, а не на 1000, для таких циклов), а не на условие задачи.
Тогда простите, я не понял смысла Вашей фразы. Да и еще когда проверял свою гипотезу на паскале, то забыл обновить страницу.. так что еще раз простите..
Poma][a вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сформировать список целых чисел и посчитать сумму нечетных чисел bwitcher Помощь студентам 6 23.03.2013 18:08
задать проверку на повторения чисел Archangelos Общие вопросы Delphi 2 29.03.2012 11:49
Как вычислить из массива чисел повторения Irek11 Microsoft Office Excel 12 19.08.2011 13:28
список всех четырехзначных нечетных чисел, делящихся без остатка на сумму своих цифр. Kami-sama Общие вопросы C/C++ 2 12.11.2010 17:07
Ввести несколько чисел (кол-во чисел запрашивать с экрана). Определить, сколько чисел, меньших заданного Lirika Помощь студентам 0 08.05.2010 21:39