С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
1 / 1 / 0
Регистрация: 21.10.2015
Сообщений: 21
1

Запрет ввода определённых символов в scanf

21.10.2015, 17:17. Показов 2012. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
всем привет, я тут впервые так что не пинайте за может глупые на ваш взгляд вопросы.
я только начинаю осваивать Си. и есть вопрос, нужно попросить юзера ввести 5 значное целое число не содержащую цифру 0, и проверить если число является полиндромом или нет. если юзер вводит цифру 0 то программа выдаёт соответсвтующее сообщение.
код проверика на полиндром я написал и он работает. вопрос как сделать запрет на ввод цифры 0 и как вывести сообщение если такова была набранна?
заранее спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.10.2015, 17:17
Ответы с готовыми решениями:

Запрет ввода определенных символов в Edit
Я искал на форуме и в гугле, нашел разные варианты, но не нашел который мне бы подошел... Ведь у...

Запрет ввода определенных символов в TextBox
Можно ли в каком-то свойстве текстбокса выбрать тип вводимых данных? Т.е., допустим текстбокс нужен...

Запрет ввода определенных символов в dbgrid
Добрый вечер! Ввожу данные непосредственно dbgrid, как мне запретить ввод знаков кроме чисел в...

Запрет ввода в TextBox определенных символов
В общем проблема такая, пол дня уже пытаюсь выполнить небольшое задание... Нужно поставить защиту...

6
Диссидент
Эксперт C
27707 / 17325 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
21.10.2015, 17:33 2
Alex Sil, Вводите по одному символу и проверяйте. Ввод запоминаете в строке char v[6]. После ввода 5-ти символов не забудьте завершить строку терминальным нулем. Получить число из строки можно функцией atoi. Хотя на полиндромичность можно проверить сразу строку, не приводя ее к числу.
0
1 / 1 / 0
Регистрация: 21.10.2015
Сообщений: 21
21.10.2015, 21:02  [ТС] 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
#include <stdio.h>
 
void main()
 
{
    //define types of constants
    long int inputnumber, reversenumber = 0, tempnumber = 0;
    //print message to user with correct input instructions
    printf("Please input positive integer number\nthat contanits up to 5 digits 1-9 [besides 0]: ");
    //input number to constanr number
 
    scanf("%ld", &inputnumber);
    
    tempnumber = inputnumber;
    if (inputnumber > 0 && inputnumber < 100000)
    {
        while ((inputnumber > 0) && (inputnumber < 100000))
        {
            reversenumber = reversenumber * 10 + inputnumber % 10;
            inputnumber = (inputnumber - (inputnumber % 10)) / 10;
        }
        if (tempnumber == reversenumber)
            printf("Your number is Polindrome\n");
        else
            printf("Your number is not Polindrome\n");
    }
    else printf("Incorrect input\n");
 
}
вот что у меня вышло, номер он проверяет на полиндромичность,осталось только ввод 0 запретить и сообщение выдать.
у меня курс только начался поэтому реализация должна быть не сложной

Добавлено через 2 часа 57 минут
Байт, извини друг, я новичек и ничего не понял что ты сказал,можно както в виде кода пожалуйста?
0
1 / 1 / 0
Регистрация: 21.10.2015
Сообщений: 21
24.10.2015, 12:03  [ТС] 4
проблему решил, тему можно закрыть
0
Диссидент
Эксперт C
27707 / 17325 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
24.10.2015, 12:17 5
Цитата Сообщение от Alex Sil Посмотреть сообщение
проблему решил,
Не жадничай. Покажи как.
0
1 / 1 / 0
Регистрация: 21.10.2015
Сообщений: 21
24.10.2015, 13:39  [ТС] 6
у меня сейчас проблема с разделом, если смогу решить и восстановить файлы обязательно покажу

Добавлено через 9 минут
Может очень некомпактно, но работает, я только учусь

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
#include <stdio.h>
 
void main()
 
{
    //define types of constants
    long int inputnumber, reversenumber = 0, tempnumber = 0,i,check0,count;
    //print message to user with correct input instructions
    printf("Please input positive integer number\nthat contanits up to 5 digits 1-9 [besides 0]: ");
    //input number to constant
 
    scanf("%ld", &inputnumber);
    //put inputnumber value into tempnumber for futher comparasion
    tempnumber = check0 = inputnumber;
    //putinputnumber into 
    //count number of 0 in entered number, set start value to 0
    count = 0;
    //start loop from i=0 to i=entered number, check if entered number modulu 10 = 0, if yes count 1 to count for every 0 in number.
    for (i = 0; i<inputnumber; i++) {
        while (check0>0) {
            if (check0 % 10 == 0) count += 1;
            check0 = check0 / 10;
        }
    }
    //check if countered at least 1 zero in entered number print message that prohibited 0 wase entered
    if (count != 0)
        printf("Your number contain prohibited digit 0\n");
    else
    
    //if number not contains 0, check that is positive and maximum 5 digit number
    if (inputnumber > 0 && inputnumber < 100000)
    {
        //if entered correct number, reverse entered number i.ex 123->321 
        while ((inputnumber > 0) && (inputnumber < 100000))
        {
            reversenumber = reversenumber * 10 + inputnumber % 10;
            inputnumber = (inputnumber - (inputnumber % 10)) / 10;
        }
        //now check if entered number(tempnumber=inputnumber) = to reversed number, if yes print message that number is polindrome
        if (tempnumber == reversenumber)
            printf("Your number is Polindrome\n");
        else
        //if not, print Not polindrome
            printf("Your number is not Polindrome\n");
    }
    //if entered incorrect non positive  and not 5 digit number, print this message
    else printf("Incorrect input\n You entered more than 5 digits or prohibited symbol\n");
 
}
P.S не обращайте внимание что много строк коментария, это для учителя

Добавлено через 8 минут
Байт
1
Диссидент
Эксперт C
27707 / 17325 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
24.10.2015, 14:56 7
Alex Sil, Ну что ж, для новичка вполне приличный код.
Удачи!
1
24.10.2015, 14:56
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.10.2015, 14:56
Помогаю со студенческими работами здесь

Запрет ввода определенных символов в dataGridView
У меня есть таблица. Хочу чтобы кроме цифр и запятой вводить в ячейки ничего нельзя было. Кто...

Запрет ввода определенных символов в TextBox
Пожалуйста помогите как написат программу чтобы в текстбоксе нельзя было бы ставить 1)ПРОБЕЛ,...

Запрет ввода определенных символов в TextBox
Подскажите пожалуйста как с делать так чтобы при выборе в numericUpDown цифры 2 в textBox можно...

Запрет ввода определенных символов (перевод с Delphi)
Доброго времени суток!!! Ребята помогите перевести код с Дэлфы на C++...Пишу Курсач и мне осталось...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Test
mik-a-el 07.01.2025
Test
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru