Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
inferno mf
1 / 1 / 0
Регистрация: 13.09.2009
Сообщений: 96
#1

Многозначные числа - C++

14.04.2010, 01:25. Просмотров 985. Ответов 9
Метки нет (Все метки)

Помогите разобраться с задачкой... Дано многозначное число. Вывести на печать число, состоящее из цифр, которые встречаются более одного раза в записи первоначального числа, либо вообще не встречаются в записи первоначаьного числа
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2010, 01:25     Многозначные числа
Посмотрите здесь:

Как написать программу-калькулятор чтобы было можно додавать 2 числа, 3 числа, 4 числа, n чисел? - C++
Как написать программу-калькулятор чтобы было можно додавать 2 числа, 3 числа, 4 числа, n чисел?

Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми - C++
Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми. ...

Составить программу для деления числа а на число b, если а, b — многозначные числа - VBA
Составить программу для деления числа а на число b, если а, b — многозначные числа на VBA. Добавлено через 40 секунд Помогите...

Многозначные числа - Pascal ABC
1. Дано многозначное число. Определить сколько в нем цифр. 2. Записать данное многозначное число в обратном порядке. 3. Найти сумму...

Insert Into Многозначные поля - MS Access
Добрый день! Возникла такая задача: два столбца в таблице (таблица1) являются многозначными полями. Есть еще две таблицы. Одна (таблица2)...

Как читать многозначные поля в MS Access? - MS Access
Уважаемые коллеги! Кто-нибудь обладает сакральным знанием о том, как читать многозначные поля в MS Access с помощью DAO и C++? Буду очень...

Однозначные элементы массива оставить без изменения, многозначные заменить на сумму цифр - Pascal ABC
Дан массив от 1 до N . Если число из массива однозначное то оставить его как есть , а если многозначное то это число будет равняться сумме...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Oleg462
31 / 30 / 3
Регистрация: 18.01.2010
Сообщений: 123
14.04.2010, 01:43     Многозначные числа #2
в консоли надо ?
inferno mf
1 / 1 / 0
Регистрация: 13.09.2009
Сообщений: 96
14.04.2010, 02:08  [ТС]     Многозначные числа #3
ну вообще да, хотя это не принципиально.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
14.04.2010, 07:36     Многозначные числа #4
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
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
 
#define REPEATSMIN  1   /* минимальное количество повторов */
 
/* выводит повторяющиеся цифры */
int main(void) /* ANSI C89 */
{
    const char *number = "12934872344569871234897342";
    
    char visdigit[10] = "0123456789";
    int cntdigit[10] = { 0 };
    int c, i, j;
    
    for (i = 0; (c = number[i]) != '\0'; i++)
        if (isdigit(c)) {
            for (j = 0; j < 10; j++)
                if (visdigit[j] == c)
                    cntdigit[j]++;
        }
    
    printf("digits repeating:");
    for (i = 0; i < 10; i++)
        if (cntdigit[i] > REPEATSMIN)
            printf(" %c", visdigit[i]);
    putchar('\n');
    
    return EXIT_SUCCESS;
}
inferno mf
1 / 1 / 0
Регистрация: 13.09.2009
Сообщений: 96
15.04.2010, 00:53  [ТС]     Многозначные числа #5
Спасибо огромное!

Как можно сделать так, чтобы число можно было ввести с клавиатуры?

Вот кое-что подкорретировал, но не работает(

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
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
 
#define REPEATSMIN  1   /* ìèГ*ГЁГ¬Г*ëüГ*îå êîëè÷åñòâî ïîâòîðîâ */
 
/* âûâîäèò ïîâòîðÿþùèåñÿ öèôðû */
int main(void) /* ANSI C89 */
{
     long int *number;
    printf("Please, enter the number\n");
    scanf("%ld ",&number);
    char visdigit[10] = "0123456789";
    int cntdigit[10] = { 0 };
    int c, i, j;
    
    for (i = 0; (c = number[i]) != '\0'; i++)
        if (isdigit(c)) {
            for (j = 0; j < 10; j++)
                if (visdigit[j] == c)
                    cntdigit[j]++;
        }
    
    printf("Result:\n");
    for (i = 0; i < 10; i++)
        if (cntdigit[i] > REPEATSMIN)
            printf(" %c", visdigit[i]);
    putchar('\n');
    
    getch();
}
insideone
Модератор
Автор FAQ
3638 / 916 / 49
Регистрация: 10.01.2010
Сообщений: 2,468
15.04.2010, 01:00     Многозначные числа #6
inferno mf, в коде у accept переменная number - строкового типа, а вы сделали числом - конечно не будет работать. Считать в строку можно так:
C
1
2
3
    char number[50];
    printf("Please, enter the number\n");
    scanf("%s",&number[0]);
inferno mf
1 / 1 / 0
Регистрация: 13.09.2009
Сообщений: 96
15.04.2010, 01:13  [ТС]     Многозначные числа #7
Цитата Сообщение от insideone Посмотреть сообщение
inferno mf, в коде у accept переменная number - строкового типа, а вы сделали числом - конечно не будет работать. Считать в строку можно так:
C
1
2
3
    char number[50];
    printf("Please, enter the number\n");
    scanf("%s",&number[0]);
ясно. спасибо большое!

просто я хотел как-то предусмотреть тот случай, чтобы нельзя было использовать числа вещественного типа.
insideone
Модератор
Автор FAQ
3638 / 916 / 49
Регистрация: 10.01.2010
Сообщений: 2,468
15.04.2010, 01:16     Многозначные числа #8
Цитата Сообщение от inferno mf Посмотреть сообщение
просто я хотел как-то предусмотреть тот случай, чтобы нельзя было использовать числа вещественного типа.
Вполне логично! Тогда можно считать в какую-нибудь переменную вроде int num; а потом сделать так:
C
1
itoa(num, &number[0], 10);
Эта функция переведет число в строковое представление
inferno mf
1 / 1 / 0
Регистрация: 13.09.2009
Сообщений: 96
15.04.2010, 01:36  [ТС]     Многозначные числа #9
Цитата Сообщение от insideone Посмотреть сообщение
Вполне логично! Тогда можно считать в какую-нибудь переменную вроде int num; а потом сделать так:
C
1
itoa(num, &number[0], 10);
Эта функция переведет число в строковое представление
теперь отлично работает! спасибо огромное!

не подскажете еще как можно сделать так, чтобы выводилось сообщение в случае того, если не будет совпадающих цифр?
C
1
2
3
4
5
 printf("Result:\n");
    for (i = 0; i < 10; i++)
        if (cntdigit[i] > REPEATSMIN)
            printf("%c\n", visdigit[i]);
          else printf("None!");
так сообщение выводится по количеству итераций в цикле(
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2010, 03:32     Многозначные числа
Еще ссылки по теме:

Получить из цифр числа четырехзначные числа, у которых цифры исходного числа идут в том же порядке - Pascal
Задано натуральное трехзначное число. Получить из его цифр четырехзначные числа, у которых цифры исходного числа идут в том же порядке, но...

Определить все натуральные числа m, не превосходящие числа N. Сумма всех цифр числа m-простое число. - Pascal
Уславие Определить все натуральные числа m, не превосходящие числа N. Сумма всех цифр числа m-простое число.

В 2 поля ввести 2 числа и вывести все непарные числа больше первого числа и меньше второго - JavaScript
Нужно в 2 поля ввести 2 числа и вывести все непарные числа больше первого числа и меньше второго;

За 1 просмотр файла вывести сначала числа меньше а, потом числа из промежутка а b, затем, числа больше b - C (СИ)
Дан файл с числами типа float, пользователь вводит 2 числа а и b, за 1 просмотр файла нужно вывести сначала числа меньше а, потом числа из...

Найти двухзначные числа, равные сумме куба числа единиц и квадрата числа десятков - Turbo Pascal
Найти двухзначные числа, равные сумме куба числа единиц и квадрата числа десятков


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

Или воспользуйтесь поиском по форуму:
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
15.04.2010, 03:32     Многозначные числа #10
новая версия
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
 
#define REPEATSMIN  1     /* минимальное количество повторов */
#define NUMBLENMAX  100   /* максимальная длина числа */
 
 
/* выводит повторяющиеся цифры */
int main(void) /* ANSI C89 */
{
    /* const char *number = "12934872344569871234897342"; */
    
    char number[NUMBLENMAX];
    char visdigit[10] = "0123456789";
    int cntdigit[10] = { 0 };
    int c, i, j;
    int repflag;
    
    
    printf("enter a number (integer): ");
    fflush(stdout);
    
    for (i = 0; (c = getchar()) != EOF
      && isdigit(c) && i+1 < NUMBLENMAX; i++)
        number[i] = c;
    
    number[i] = '\0';
        
        
    for (i = 0; (c = number[i]) != '\0'; i++)
        if (isdigit(c)) {
            for (j = 0; j < 10; j++)
                if (visdigit[j] == c)
                    cntdigit[j]++;
        }
    
    
    printf("the number: %s" "\n", number);
    
    printf("repeating digits: ");
    
    repflag = 0;
    
    for (i = 0; i < 10; i++)
        if (cntdigit[i] > REPEATSMIN) {
            
            if (repflag == 0)
                repflag = 1;
            
            printf("%c%s", visdigit[i], (i+1 < 10 ? " " : ""));
        
        }
    
    if (repflag == 0)
        printf("none");
    
    putchar('\n');
    
    
    return EXIT_SUCCESS;
}
Yandex
Объявления
15.04.2010, 03:32     Многозначные числа
Ответ Создать тему
Опции темы

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