Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Заблокирован

Проверка на int

20.09.2014, 14:30. Показов 863. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
int main(void)
{
    int vop;
    setlocale(LC_ALL, "Russian");
    int mas1[20], mas2[20], mas3[20], outmas[100];
    int ke1, ke2, ke3;
    do
    {
        printf("Введите количество элементов 1-го множества:   ");
        scanf_s("%i", &ke1);
        if (ke1>sizeof(mas1) / sizeof(int))
            printf("слишком большой размер, не больше %d", sizeof(mas1) / sizeof(int));
    }
    while (ke1>sizeof(mas1) / sizeof(int) );
 
    for (int i = 0; i < ke1; i++)
    {
        int tmp, btmp;
        btmp = 0;
        printf("Введите %d элемент: ", i + 1);
        scanf_s("%i", &tmp);
        for (int j = 0; j<i; j++)
        {
            if (tmp == mas1[j])
            {
                btmp = 1;
                printf("Число уже есть в %d позиции \n Введите заново: \n", j + 1);
                break;
            }
        }
        if (btmp == 0)
        {
            mas1[i] = tmp;
        }
        else
        {
            i--;
        }
    }
 
    do
    {
        printf("Введите количество элементов 2-го множества:   ");
        scanf_s("%i", &ke2);
        if (ke2>sizeof(mas2) / sizeof(int))
            printf("Слишком большой размер, не больше %d", sizeof(mas2) / sizeof(int));
    }
    while (ke2>sizeof(mas2) / sizeof(int));
 
    for (int i = 0; i < ke2; i++)
    {
        int tmp, btmp;
        btmp = 0;
        printf("Введите %d элемент: ", i + 1);
        scanf_s("%i", &tmp);
        for (int j = 0; j<i; j++)
        {
            if (tmp == mas2[j])
            {
                btmp = 1;
                printf("Число уже есть в %d позиции \n Введите заново: \n", j + 1);
                break;
            }
        }
        if (btmp == 0)
        {
            mas2[i] = tmp;
        }
        else
        {
            i--;
        }
    }
    do{
        printf("Введите количество элементов 3-го множества:   ");
        scanf_s("%i", &ke3);
        if (ke3>sizeof(mas3) / sizeof(int))
            printf("Слишком большой размер, не больше %d", sizeof(mas3) / sizeof(int));
 
    } while (ke3>sizeof(mas3) / sizeof(int));
 
    for (int i = 0; i < ke3; i++)
    {
        int tmp, btmp;
        btmp = 0;
        printf("Введите %d элемент: ", i + 1);
        scanf_s("%i", &tmp);
        for (int j = 0; j<i; j++)
        {
            if (tmp == mas3[j])
            {
                btmp = 1;
                printf("Число уже есть в %d позиции \n Введите заново: \n", j + 1);
                break;
            }
        }
        if (btmp == 0)
        {
            mas3[i] = tmp;
        }
        else
        {
            i--;
        }
    }
Помогите, всё утро пытаюсь придумать
Как сделать, чтоб если вводили не интовое число, возвращало на шаг назад?
Пробовал while (scanf("%i",ke1)==0), зацикливается
помогите

Добавлено через 37 минут
всё
придумал сам
вдруг кому пригодится)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int vop;
    setlocale(LC_ALL, "Russian");
    int mas1[20], mas2[20], mas3[20], outmas[100];
    int ke1, ke2, ke3;
    vvod1: do
    {
        printf("Введите количество элементов 1-го множества:   ");
        scanf_s("%i", &ke1);
        if (ke1>sizeof(mas1) / sizeof(int))
            printf("Слишком большой размер, не больше %d", sizeof(mas1) / sizeof(int));
        while (scanf_s("%i", &ke1) == 0)
        {
            printf("Пожалуйста, введите целое число\n");
            while (getchar() != '\n')
                continue;
            goto vvod1;
        }
        return ke1;
    }
    while (ke1>sizeof(mas1) / sizeof(int));
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.09.2014, 14:30
Ответы с готовыми решениями:

Какая из этих функций int Q(int w) int W(int y,int u,int i) сработает быстрее?
Если есть 2 функции(простые или перегруженные) к примеру Q(int w) int W(int y,int u,int i)или int Funkz(int a) int Funkz(int a, int b, int...

Не работает перегрузка индексного оператора [], вместо [int][int] почему то нужно ставить [0][int][int]
#include&lt;iostream&gt; #include&lt;string&gt; #include&lt;vector&gt; #include&lt;algorithm&gt; #include&lt;ctime&gt; #include&lt;conio.h&gt; #include&lt;windows.h&gt; ...

Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec
Вот есть заголовочный файл // Заголовочный файл Vector.h #ifndef VECTOR_H #define VECTOR_H #include &lt;iostream&gt; using...

3
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
20.09.2014, 18:19
Вырезка из программы, думаю можно понять
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void Program::menuFind()
{
    char choise;
    do
    {
        printMenuFind();
        cin >> choise; // запоминаем выбор
        if (choise < '0' || choise > '4')
        {
            cout << "\nВыберите корректный пункт меню\a"; // гудок
            _getch();
        }
        else
            menuFindChoise(choise - '0');
    } while (choise < '0' || choise > '4');
}
0
Заблокирован
20.09.2014, 21:28  [ТС]
буду очень благодарен если под мою прогу хоть примерно подскажите
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
21.09.2014, 14:59
Цитата Сообщение от Real1zm Посмотреть сообщение
Как сделать, чтоб если вводили не интовое число, возвращало на шаг назад?
Простыми средствами (стандартными функциями) языка - по большому счёту никак. Полноценная реализация того, что ты хочешь - вещь сложная, так что почитай тут: https://www.cyberforum.ru/blogs/42536/blog278.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.09.2014, 14:59
Помогаю со студенческими работами здесь

[C++ Error] Unit2.cpp(22): E2034 Cannot convert 'int (*)(int,int *)' to 'int'
Всем привет! Пожалуйста , помогите , почему выдает ошибку Unit2.cpp(22): E2034 Cannot convert 'int (*)(int,int *)' to 'int' ?. Мне нужно...

Ошибка: cannot convert 'int (*)[50]' to 'int*' for argument '1' to 'void vvod2m(int*, int*, int*, char)'Х2
Матрицы An1*m1 и Bn2*m2 вводить с клавиатуры (размерности &gt;3, m1=n2). Выполнять через подпрограммы. выводит следующие ошибки: 1) cannot...

проверка на int
добрый день! не работает проверка на int . подскажите в чем проблема? bool bFlag; do { cout&lt;&lt;&quot;Enter...

Проверка на Int
Не знаю как реализовать проверку на ввод только Int c возможностью исправления(т.е. пока не будет введен Int будет выскакивать сообщение с...

Int из char[] проверка
Здравствуйте. Можно ли как нибудь проверит влезет ли char, например char=&quot;6463736655664&quot;, в переменную int?


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru