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

Проверка количества цифр в числе

25.01.2018, 14:37. Показов 3631. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток) Возникла проблема с программой, помогите, пожалуйста
Уверен, что ошибка простая, но не могу понять

Как всё должно работать:
  1. Вводится пятизначное число
  2. Проверяется, пятизначное ли число введено
  3. Если да - запускается программа, вызывается функция, там всё нормально
  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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <cmath>
#include "palendrom.h"
using namespace std;
 
int main(int argc, char** argv) {
    setlocale(LC_ALL, "");
    int in_number;
    int score = 0;
    int menu;
    int number_check;
    
    //Этот цикл перезапускает программу, чтобы она не завершалась после первой проверки палендром-не палендром
    for(int i = 0; i <= 1;){
    
        cout << "Введите пятизначное число: ";
        cin >> in_number;
        
        //Это проверка, пятизначное ли введено число. Тут и возникает проблема
        for(int i =0; in_number > 0 ; i++){
            in_number /= 10;
            number_check = i;
        }
        //Если число равно пяти, начинается работа программы. Тут всё как надо, всё работает
        if(number_check == 5){
        
        
            if(palendrom_2(in_number)){
                cout << "Число " << in_number << " -- палендром. "; 
            }
            else{
                cout << "Это не палендром";
            }
            
            cout << "Продолжить?\n1.Y\n2.N\n";
            cin >> menu;
            
            if(menu == 1){
                i = 0;
            }
            else{
                i = 2;
            }
        }
        else{
            //Почему-то выводится вот это, вне зависимости от того, пятизначное введено число или нет :(
            cout << "Это не пятизначное число!";
        }
    }
    
    return 0;
}


Если это может чем-то помочь(хотя скорее всего я просто что-то не так сделал в условии проверки количества цифр), вот код функции palendrom_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
bool palendrom_2(int number){
    int balance1;
    int balance2;
    int balance4;
    int balance5;
    
    balance1 = number % 10;
    number /= 10;
    
    balance2 = number % 10;
    number /= 100;
    
    balance4 = number % 10;
    number /= 10;
    
    balance5 = number %10;
    
    if((balance1 == balance5) && (balance2 == balance4)){
        return true;
    }
    else{
        return false;
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.01.2018, 14:37
Ответы с готовыми решениями:

Определение количества цифр в восьмеричном числе
Помогите сделать программу, пожалуйста! Алгоритм определения кол-ва цифр в восьмеричном числе

Определение количества цифр в целом числе
Помогите плиз) Вот вариант что нужно сделать! написать подпрограмму-функцию определения кол-во цифр в целом числе n(если после...

Подсчет количества цифр в вещественном числе
Насколько я понял, сделать это можно лишь с переводом в строковый тип, а вот сделать никак не могу. И да, вещественное число не вводится...

7
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
25.01.2018, 14:56
Как вариант, на пятизначность легко можно проверить так:
C++
1
if (in_number > 9999 && in_number <= 99999)
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
25.01.2018, 17:32
Цитата Сообщение от mrpes Посмотреть сообщение
Уверен, что ошибка простая, но не могу понять
для начала узнайте что такое палиндром - может и вопрос снимется
0
1 / 1 / 0
Регистрация: 09.01.2018
Сообщений: 12
25.01.2018, 22:01  [ТС]
Hitoku, не могу понять, как это работает. Объясните?

Yetty, слово, которое одинаково читается с обеих сторон) Просто перенёс это на числа. ПРоблема-то не в этом
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
25.01.2018, 22:04
mrpes, ну если число больше 9999 и меньше 100000, то оно пятизначное
0
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
25.01.2018, 22:05
Можно чуть по-другому) Возвращает количество разрядов.
C++
1
2
3
4
5
6
#include <cmath>
...
int digitCount(int value)
{
    return std::log10(value) + 1;
}
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
25.01.2018, 22:39
Цитата Сообщение от mrpes Посмотреть сообщение
Yetty, слово, которое одинаково читается с обеих сторон
можно и так сказать. просто Вы в теме указали проверку количества цифр, а сбросили программу на палиндром. сбросьте полное условие задачи, если не сложно и в программе исправьте ошибку в слове палиндром
0
1 / 1 / 0
Регистрация: 09.01.2018
Сообщений: 12
27.01.2018, 10:47  [ТС]
Hitoku, понял, спасибо)

lArtl, о, вот это интересно. Спасибо)

Yetty, ну ведь проблема с проверкой количества цифр возникает в отдельной части программы на палиндром. Полное условие - просто проверить, является ли введённое число палиндромом. В стиле 44044, что-то такое. После решил добавить вот такое условие с проверкой на пятизначность, тут и возникли проблемы)

Исправлять слово лень, от этого работоспособность точно не зависит
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.01.2018, 10:47
Помогаю со студенческими работами здесь

Алгоритм определения количества цифр в шестнадцатиричном числе
Привет, у меня постала задача создать программу на с++, связану с определениям количества цифр в шестизначному числе. Определения должно...

Рекурсивный подсчет количества нечетных цифр в числе
Всем привет. Есть работающая программа, которая считает все цифры в числе рекурсивно. А по условию задачи нужно посчитать количество...

Проверка на различность цифр в числе
Дано четырехзначное целое число. Определить все ли цифры числа различны. Пример входных данных 1234 1134 1214 Пример выходных...

Функция: подсчёт количества цифр после запятой в дробном числе
Нужно написать функцию подсчёта количества цифр после запятой в дробовом числе и при этом не использовать никак встроеных функций по типу...

Проверка наличия определенных цифр в числе
int n,kn = 0,kc = 0,a,b; cout&lt;&lt;&quot;Введите натуральное число:&quot;; cin &gt;&gt;n; cout &lt;&lt;&quot;Введите A:&quot;; cin &gt;&gt;a; cout...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru