Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
kitten
0 / 0 / 0
Регистрация: 14.12.2008
Сообщений: 21
#1

Проверить, есть ли цифры, не встречающиеся ни разу - C++

15.12.2008, 00:37. Просмотров 1323. Ответов 16
Метки нет (Все метки)

Помогите, пожалуйста с программой на Си.
Проверить, есть ли цифры, не встречающиеся ни разу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2008, 00:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверить, есть ли цифры, не встречающиеся ни разу (C++):

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

Есть натуральное число n. Проверить, есть ли в том числе 3 одинаковых цифры - C++
Помогите реализировать 2 задания при с использованием указателей. Я коды написал, но не уверен в их правельности и рациональности. ...

Проверить есть ли одинаковые цифры в числе - C++
Дано четырёхзначное число,если в нем 3 или больше одинаковых цифр,то выводится <YES>,если меньше 3 цифр,то <NO> Пример : Ввод : 1110 ...

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

Проверить, есть ли в трехразрядном числе одинаковые цифры - C++
Доброго времени суток всем, Прошу помощи, я новичек по этому не сильно кричите.. Есть бешенное желание научиться писать на Си++,...

Вывести все слова встречающиеся в последовательности по одному разу - C++
Дан текст, содержащий от 1 до 30 слов, в каждом из которых от 1 до 5 строчных латинских букв; между соседними словами – запятая, за...

16
Безобидный
0 / 0 / 0
Регистрация: 05.12.2008
Сообщений: 4
15.12.2008, 03:03 #2
О да... если бы все люди так обьясняли что им нужно мир - стал бы намного проще... Если серьезно, что тебе надо?
0
kitten
0 / 0 / 0
Регистрация: 14.12.2008
Сообщений: 21
15.12.2008, 17:21  [ТС] #3
Составить программу на языке Си в целом типе данных, которая для любых допустимых и корректно записанных целых чисел в десятичном изображении, вводимых из входного текстового файла, проверяет, есть ли цифры, не встречающиеся ни разу.
0
FOLKEN
21 / 20 / 3
Регистрация: 03.12.2008
Сообщений: 86
15.12.2008, 17:44 #4
ну вот, задача теперь ясна : ) свои наработки есть? : ) иначе вам сюда : )
0
kitten
0 / 0 / 0
Регистрация: 14.12.2008
Сообщений: 21
15.12.2008, 18:01  [ТС] #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
int main ()
{
    int c, i;
    putchar(c);
    scanf("%d", & c);
    if(i>=0 && i<=9)
    {
           while(c!=i)
        {
            printf("%d", i);
        }
       putchar(c);
    }
    return 0;
}
вот только это не работает(
0
FOLKEN
21 / 20 / 3
Регистрация: 03.12.2008
Сообщений: 86
15.12.2008, 18:07 #6
о боги... а что это, простите за нескромный вопрос? насколько я могу судить по вашему заданию - вам надо открыть текстовый файл (предварительно его создать и занести в него значения), прочитать его содержимое да проверить. Цифр у нас всего 10. сталбыть хм.. тут первое что на ум приходит - завести массив из десяти указателей=0. Как находим цифру - ставим на ее месте 1ку. Проверяем это дело пока файл не кончится, либо пока все указатели не станут единичками. что значит все цифры нам встретились.
0
kitten
0 / 0 / 0
Регистрация: 14.12.2008
Сообщений: 21
15.12.2008, 18:17  [ТС] #7
Да..но что нужно делать если мы встретили не все цифры? об этом ведь надо что-то написать..
0
FOLKEN
21 / 20 / 3
Регистрация: 03.12.2008
Сообщений: 86
15.12.2008, 18:28 #8
ну а коли не все цифры встретили - надо их вывести, я полагаю.. дерзайте)
0
kitten
0 / 0 / 0
Регистрация: 14.12.2008
Сообщений: 21
15.12.2008, 18:55  [ТС] #9
Хм..спасибо..попытаюсь...

Добавлено через 22 минуты 38 секунд
А вот только можно еще вопрос.. эту задачу решить без массивов возможно?
0
FOLKEN
21 / 20 / 3
Регистрация: 03.12.2008
Сообщений: 86
15.12.2008, 19:04 #10
можно, только придется вместо одного цикла десять условий писать..
0
kitten
0 / 0 / 0
Регистрация: 14.12.2008
Сообщений: 21
15.12.2008, 19:31  [ТС] #11
Вот только с 10-ю условиями программа работает не правильно..
0
FOLKEN
21 / 20 / 3
Регистрация: 03.12.2008
Сообщений: 86
15.12.2008, 19:38 #12
код в студию, поглядим чего там как)
и с 10 условиями имхо бред, давай лучше с массивом, а?
0
kitten
0 / 0 / 0
Регистрация: 14.12.2008
Сообщений: 21
15.12.2008, 20:09  [ТС] #13
В том то и дело, что с массивом нельзя...а с 10-ю условия код получается слишком большой, если писать вот так
C++
1
2
3
4
while (c!='a')//а-некоторая цифра
{
  с=getchar();
}
0
accept
4825 / 3246 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
15.12.2008, 23:53 #14
с массивом, т.к. даже если без массива, всё равно 10 переменных создавать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <ctype.h>
 
/* проверяет есть ли цифры не встречающиеся ни разу;
   для таблиц символов где 0123456789 */
main()
{
    int c, i, nums[10];
    
    for (i = 0; i < 10; nums[i] = 0, i++)
        ;
    while ((c = getchar()) != EOF)
        if (isdigit(c))
            nums[c-'0']++;
    for (i = 0; i < 10; i++) {
        if (nums[i] == 0)
            printf(" %d", i);
        if (i == 9)
            putchar('\n');
    }        
    return 0;
}
0
kitten
0 / 0 / 0
Регистрация: 14.12.2008
Сообщений: 21
16.12.2008, 18:21  [ТС] #15
accept, мне не совсем понятно Ваше решение...

Вот моя последняя программа. как тут исправить ошибку?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <stdio.h>
#include <math.h>
 
 int list=123456789;
 
int intLen(int n)
{
int i=0;
while(n>0)
{
      n/=10;
      i++;
}
return i;
}
int intDigit(int n, int j)
{
      return (int)(n-n*pow(10, j))%10;
}
 
int intDelDigit (int intDigit)
{
    int n, j;
    list=list-j*(int)pow(10, 9-j);
    return list;
}
 
int main()
{
 
    int n, i, j;
    scanf("%d", &n);
    for(i=1; i<10; i++)
        for(int j=1; j<=intLen(n); j--)
            if(i==intDigit(n, j))
            {
                intDelDigit(intDigit(n,j));
                continue;
            }
            printf("%d", list);
}
0
16.12.2008, 18:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2008, 18:21
Привет! Вот еще темы с ответами:

Ввести символьную строку проверить есть ли в ней цифры - C++
Ввести символьную строку проверить есть ли в ней цифры. Если в строке есть цифры вывести на экран &quot;В строке есть цифры&quot; если в нету то &quot;В...

Проверить, есть ли в записи числа три одинаковые цифры - C++
Дано натуральное число N. Проверить, есть ли в записи числа три одинаковые цифры.

Проверить, есть ли в записи натурального числа N три одинаковые цифры - C++
дано натуральное число n. Проверить есть ли в записи числа три одинаковые цифры

Ввывести на экран все цифры, встречающиеся в строке - C++
Цель задания: Изучить структурированный тип строки. Научиться работать со строками при решении задач. Задача: Нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru