Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Числа, содержащие неповторяющиеся цифры(С).

44K
17 января 2009 года
luxury
3 / / 17.01.2009
Здравствуйте, я начинающаяя. Очень требуется ваша помощь!
Надо написать прогу:
С клавиатуры вводятся натуральные числа. Выводятся на экран только те числа, которые не содержат повторяющийхся цифр.

Пример: 123, 144, 155, 222, 153, 187, 200.
Вывод на экран: 123, 153, 187.

какую функцию использовать для данной программы?

Заранее спасибо.
[COLOR="Red"]
Такие названия тем, как help или Помогите у нас на форуме не принято давать, язык программированя в названии указывать, читаем Правила раздела Студентам. На первый раз устное предупреждение.
[/COLOR]модератор.
1.8K
17 января 2009 года
CilCatblack
251 / / 20.09.2007
:rolleyes:как вариант вводишь массив натуральных чисел, после чего с помощью цикла for сравниваешь эти числа(елементы массива) ;)
87
17 января 2009 года
Kogrom
2.7K / / 02.02.2008
Язык не помешало бы указать. Если нужен c++, то я бы сделал контейнер со строками, загрузил в него все, поразвлекался с unique: если возращает нужный итератор, то вывести.
44K
17 января 2009 года
luxury
3 / / 17.01.2009
язык С.))
и у меня тут ещё вариант с делением по модулю появился..и со сравнением последующим.
1.6K
18 января 2009 года
Vov4ick
476 / / 01.02.2007
[QUOTE=luxury]какую функцию использовать для данной программы?[/QUOTE]
Думаю подойдёт функция CheckDecimalNumberForEqualDigitsAndPrintIfNo, вызываемая в цикле. ;-)
А есле серьёзно, то вы уже наверное заметили, что вместе с компилятором идёт набор функций, осуществляющих наиболее низкоуровневые операции, дабы из них составлять необходимые более сложные процедуры.
[QUOTE=luxury]и у меня тут ещё вариант с делением по модулю появился..и со сравнением последующим.[/QUOTE]
Телепатируйте!
533
19 января 2009 года
Visualex
254 / / 07.01.2005
Чето по-моему проще делается
cin>>a;
//сдесь подобрать результат от целочисленного деления и сравнения (поразрядно)
if (true) cout<<a;
533
19 января 2009 года
Visualex
254 / / 07.01.2005
если С, то использовать getch(); и printf();
32K
19 января 2009 года
Rififi
54 / / 04.06.2008
Цитата: luxury
какую функцию использовать для данной программы?


Такую, в которой прверяется, имеются ли в числе повторяющиеся цифры.
Например, эту:

Код:
bool scan_digits(unsigned int number)
{
    int count[10] = { 0 };
    for ( ; number; number /= 10)
    {
        int digit = number % 10;
        if (++count[digit] > 1)
            return (true);
    }
    return (false);
}
43K
01 февраля 2009 года
Burz
4 / / 26.09.2008
Код:
//#include "stdafx.h"
//разкомментировать в Visual Studio

#include <math.h>
#include <stdio.h>
#include <math.h>

bool RepeatDigits(unsigned short int );

int main(){
    unsigned short int /* чтобы знать сколько цифр сравнивать между собой
     в случае ввода максимально большого числа для данного типа..
     в нашем случае 5, т.к Unsigned Short Int  - 0..65535 (5 цифр)*/
        Numbers[5];    
    int        
        x;
    printf("Enter 5 numbers\n");
    for(int i=0;i<5;i++){   // начинаем вводить данные в промеж. перем.
        while(true){        // а затем заполнять массив
            printf("%d) ",i+1); //декоративности
            scanf("%d",&x); // вводим натуральное число
            if(x<0)
                x = abs(x);   // если не натуральное ввёл.. преподаватели любят искать баги
            if(x<65535 && x>0)// дабы не выйти за пределы ансигнэд шорт инт
                break;
            else
                printf("Again, please\n");
        }
        Numbers = x;     // а только теперь помещаем в массив
    }
    printf("\n");
    for(int i=0;i<5;i++)
        if( !RepeatDigits(Numbers) ) // Если нет повтора в цифрах то вывод
            printf("%hu  ",Numbers);
    printf("\n");
    return 0;
}

bool RepeatDigits(unsigned short int  x){
    bool Repeat = false;
    int
        digits[5], //массив для цифр
        count = 0,
        i,j;
    while(x%10){   // здесь мы рвём число на цифры и заносим в массив
        digits[count] = x%10;
        x /= 10;
        count++;
    }
    for(i=0;i<count;i++) // проверка на повтор
        for(j=i+1;j<count;j++)
            if(digits==digits[j])
                Repeat = true;  
    return Repeat;  //в случае повтора - truе, не_повтора - false
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог