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

После выполнения функции цикл for перестаёт работать

15.02.2023, 19:58. Показов 641. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание: нужно заполнить статический массив с клавиатуры и найти элемент, который состоит из одинаковых цифр (Например: 11, 222, 33333 и т.д.). Написал вот такой код:
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
bool checker(int n) 
{
    int ostatok, tselaya, temp;
    ostatok = n % 10; // Найдём остаток от числа    
    tselaya = n / 10; // Найдём целую часть от числа 
    while (ostatok != tselaya)
    {
        tselaya = tselaya / 10;
    }
    if (ostatok == tselaya)
    {
        return true;
    }
    else
    {
        return false;
    }
}
 
int main()
{
    setlocale(0, "");
    const int Len = 12;
    int x[Len], n, temp;
 
    cout << "Введите количество обрабатываемых элементов массива: " << endl;
    cin >> n;
    if (n > 0 && n < Len) // Проверка на то, что нужно количество элементов не превышает размер статического массива
    {
        cout << "Введите " << n << " чисел" << endl;
        for (int i = 0; i < n; i++) // Заполнение массива
        {
            cin >> x[i];
            temp = x[i];
            if (checker(temp));
            {
                cout << "Найден элемент, состоящий из одинаковых цифр: " << temp << endl;
            }
        
        }
    }
    else // Ошибка в том случае, если количество элементов равно нулю, либо число n превышает размер массива
    {
        cout << "Ошибка, вы ввели некорректное значение";
    }
}
После выполнения условия
C++
1
2
3
4
5
temp = x[i];
            if (checker(temp));
            {
                cout << "Найден элемент, состоящий из одинаковых цифр: " << temp << endl;
            }
программа перестаёт работать и не даёт вводить новые значения с клавиатуры. Пробовал менять тип функции с bool на int и др. - ничего не помогло. В чём ошибка?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.02.2023, 19:58
Ответы с готовыми решениями:

После вызова рекурсивной функции программа перестаёт работать
int mat,size,x=1,y, a=0, b=1; void mtt(int mat, int a, int b); int main(){ cin&gt;&gt;size; mtt(mat,a,b); cout&lt;&lt;&quot;JJ&quot;;//НЕ...

Css перестает работать после выполнения функции
Здравствуйте. Встала у меня такая проблемка. Есть у меня такой кусочек css .buttons { width: 59px; height: 40px; ...

Foreach перестаёт работать после первого выполнения
Написал скрипт, который обновляет записи данных при запуске cron, foreach($result as $p){ foreach($resultActiv as $a){ ...

9
Злостный нарушитель
 Аватар для Verevkin
10345 / 5763 / 1271
Регистрация: 12.03.2015
Сообщений: 26,614
15.02.2023, 20:08
Зачем ты некоторые переменные пишешь по-русски латиницей? Тебе английских слов не хватает?
И ваще, функция checker() чо делает-то?
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12938 / 6805 / 1821
Регистрация: 18.10.2014
Сообщений: 17,224
15.02.2023, 20:20
Цитата Сообщение от evasion Посмотреть сообщение
if (checker(temp));
Во-первых, зачем вы здесь поставили ;?

Цитата Сообщение от evasion Посмотреть сообщение
После выполнения условия ... программа перестаёт работать и не даёт вводить новые значения с клавиатуры.
В функции checker написана вообще какая-то бессмыслица - она либо возвращает true, либо зацикливается навечно. Вот она у вас и зациклилась навечно.
0
Злостный нарушитель
 Аватар для Verevkin
10345 / 5763 / 1271
Регистрация: 12.03.2015
Сообщений: 26,614
15.02.2023, 20:29
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
В функции checker написана вообще какая-то бессмыслица - она либо возвращает true, либо зацикливается навечно. Вот она у вас и зациклилась навечно.
Предлагаю свой вариант (хороший):
C++
1
2
3
4
5
6
7
8
9
// функция вернёт true, если число x состоит из одинаковых десятичных цыфор
// или если число однозначное.
bool checker(int x)
{
  x *= 1 - 2 * !!(x < 0);
  for (auto d = x % 10; x; x /= 10)
    if (x % 10 != d) return false;
  return true;
}
Ахтунг! Не отлаживал, писал на заборе!
1
0 / 0 / 0
Регистрация: 09.09.2022
Сообщений: 7
15.02.2023, 21:45  [ТС]
ну, не знаю насколько хороший вариант, он не работает, но всё равно спасибо!
0
Злостный нарушитель
 Аватар для Verevkin
10345 / 5763 / 1271
Регистрация: 12.03.2015
Сообщений: 26,614
15.02.2023, 21:54
Лучший ответ Сообщение было отмечено evasion как решение

Решение

Цитата Сообщение от evasion Посмотреть сообщение
ну, не знаю насколько хороший вариант, он не работает
Пришлось написать программу, чтобы убедиться, что ты мне врёшь.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
// функция вернёт true, если число x состоит из одинаковых десятичных цыфор
// или если число однозначное.
bool checker(int x)
{
  x *= 1 - 2 * !!(x < 0);
  for (auto d = x % 10; x; x /= 10)
    if (x % 10 != d) return false;
  return true;
}
 
int main()
{
  int x[] = {0, 1, 11, 12, 33, 313, 999, 8, 777, -1, -11, -12, -33, -7777};
  for (int a : x) 
    cout << a << " ----> " << (checker(a) ? "YES" : "NO") << '\n';
  return 0;
}
Врать - это твоя национальная идея или что-то личное?
1
0 / 0 / 0
Регистрация: 09.09.2022
Сообщений: 7
15.02.2023, 22:11  [ТС]
Да... Сам не понял почему не работало. А можно последний вопрос, что обозначает строка
C++
1
x *= 1 - 2 * !!(x < 0);
0
Злостный нарушитель
 Аватар для Verevkin
10345 / 5763 / 1271
Регистрация: 12.03.2015
Сообщений: 26,614
15.02.2023, 22:17
Цитата Сообщение от evasion Посмотреть сообщение
Да... Сам не понял почему не работало.

Цитата Сообщение от evasion Посмотреть сообщение
А можно последний вопрос, что обозначает строка
C++
1
x *= 1 - 2 * !!(x < 0);
x = |x|
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12938 / 6805 / 1821
Регистрация: 18.10.2014
Сообщений: 17,224
15.02.2023, 22:20
Не ясно только, зачем здесь !!...
0
Злостный нарушитель
 Аватар для Verevkin
10345 / 5763 / 1271
Регистрация: 12.03.2015
Сообщений: 26,614
15.02.2023, 22:23
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Не ясно только, зачем здесь !!...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.02.2023, 22:23
Помогаю со студенческими работами здесь

После выполнения скрипта перестает работать другой скрипт
Здравствуйте, подскажите пожалуйста, как нужно переделать функцию, чтобы работал второй скрипт. После выполнения данного скрипта...

Перестает работать форма после выполнения продолжительного аякса
Всем привет! Имеется проблема с Уберкартом. При создании нового или редактировании уже существующего заказа в Уберкарте есть...

после выполнения некоторого скрипта перестает работать jquery ui slider
Имеется фоновое изображение. Перетаскивается мышкой. Поворачивается и увеличивается ползунками путем изменения соответствующих CSS3...

Перестаёт работать UI во время выполнения цикла
В Unitiy 19.4.14f1 Сделал Canvas (Screen Space - Camera), на нём кнопку, ей добавил On Click () метод, в котором меняется таймскейл на 0 и...

Цикл перестает работать
При обозначении переменной S с абсолютным значением в условии If для прекращения цикла ,весь этот цикл останавливается на определенном...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
[В процессе разработки] SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru