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

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

Восстановить пароль Регистрация
 
Saiks
0 / 0 / 0
Регистрация: 25.08.2014
Сообщений: 3
25.08.2014, 14:03     Проверить, являются ли во введенном четырехзначном числе все цифры разными #1
программированием занимаюсь недавно. над задачей сижу 3 дня. прошу помочь
сама задача: Написать программу, которая проверяет, являются ли во введенном четырехзначном числе вида , все цифры разные.
Исходные данные: четырехзначное число m.
Результаты: цифры числа m - a,b,c,d целый тип,
k=0, если есть совпадение цифр, k=1 если совпадения цифр нет.
Следует создать функцию, которая выделяет заданную цифру из данного числа. Эта функция работает только с 4-значным числом, поэтому в начале программу следует проверить количество цифр в числе.
Тестовый пример:
при 2467 – все цифры разные;
при 1233 –цифры совпадают.
написать по алгоритму Название: 1.png
Просмотров: 120

Размер: 2.9 Кб

Проверить, являются ли во введенном четырехзначном числе все цифры разными
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2014, 14:03     Проверить, являются ли во введенном четырехзначном числе все цифры разными
Посмотрите здесь:

C++ Определить количество и сумму цифр в введенном натуральном числе. Введенное натуральное число представляется как единственное число, расположив цифры
Являются ли все три цифры в трёхзначном числе одинаковыми C++
Проверить, есть ли в трехразрядном числе одинаковые цифры C++
Если в четырехзначном числе введенному с клавиатуры, есть одинаковые цифры, то вывести 1, в противном случаe - любое другое число C++
C++ Проверить, что в натуральном числе встречаются цифры А и В.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PVD
24 / 24 / 6
Регистрация: 01.06.2014
Сообщений: 135
05.09.2014, 16:54     Проверить, являются ли во введенном четырехзначном числе все цифры разными #2
Не стал вникать в суть блок-схем, но если актуально еще, то вот набросал:
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
#include <iostream>
using namespace std;
 
int main(int argc, char argv[])
{
    int val; cin >> val;
    int numCount = int (log10(double (val))) + 1;
    char *nums = new char[numCount];
    for(int i = 0; i < numCount; i++)
    {
        nums[i] = val % 10;
        val /= 10;
    }
 
    bool sameNums = false;
    for (int i = 0; i < numCount; i++)
    {
        for (int j = 0; j < numCount; j++)
            if (i != j && nums[i] == nums[j])
            {
                sameNums = true;
                break;
            }
    if (sameNums) break;
    }
 
    if (sameNums)
        cout << "Same nums detected.\n";
    else
        cout << "All nums are different.\n";
    system("pause");
}
Saiks
0 / 0 / 0
Регистрация: 25.08.2014
Сообщений: 3
06.09.2014, 15:26  [ТС]     Проверить, являются ли во введенном четырехзначном числе все цифры разными #3
большое спасибо, но к сожалению нужно именно по блок схеме(что тупо)
PVD
24 / 24 / 6
Регистрация: 01.06.2014
Сообщений: 135
09.09.2014, 17:59     Проверить, являются ли во введенном четырехзначном числе все цифры разными #4
Что - за функция tcif? Операция получения значения разряда числа?

Добавлено через 17 минут
А, вижу.

Добавлено через 13 минут
По блок-схеме, только результат выводит обратный, когда совпадают пишет не совпадают, когда не совпадают - совпадают:
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
#include <iostream>
using namespace std;
 
int ctif_1(int m, int index)
{
    index--;
    return m % (int) pow(10.0, index + 1) / (int) pow(10.0, index);
}
 
int ctif(int n, int k)
{
    int p = 5 - k, a;
    for(int i = 1; i <= p; i++)
    {
        a = n % 10;
        n = n / 10;
    }
    return a;
}
 
int main(int argc, char argv[])
{
    int m;
    do cin >> m; while (m < 1000 || m > 9999);
    int k = 0;
    int a = ctif(m, 1);
    int b = ctif(m, 2);
    if (a != b)
    {
        int c = ctif(m, 3);
        if (c != a && c != b)
        {
            int d = ctif(m, 4);
            if (d != c && d != b && d != a)
            {
                k = 1;
            }
        }
    }
    
    if (k == 1)
    {
        cout << "Sovpadayut.\n";
    }
    else
    {
        cout << "Ne sovpadayut.\n";
    }
    system("pause");
}
Saiks
0 / 0 / 0
Регистрация: 25.08.2014
Сообщений: 3
10.09.2014, 20:21  [ТС]     Проверить, являются ли во введенном четырехзначном числе все цифры разными #5
И вам большое спасибо! буду сейчас разбираться
Yandex
Объявления
10.09.2014, 20:21     Проверить, являются ли во введенном четырехзначном числе все цифры разными
Ответ Создать тему
Опции темы

Текущее время: 03:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru