Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 06.12.2017
Сообщений: 8
1

Ввод целочисленных чисел ("защита от дурака")

07.12.2017, 16:55. Просмотров 793. Ответов 5
Метки нет (Все метки)

Пользователь вводит целое число, но если введённое число или символ не целочисленное - то программа будет говорить пользователю что он ввел неверное число . И будет повторять указывать ввести целое число до тех пор он не введет
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2017, 16:55
Ответы с готовыми решениями:

Защита от неправильного ввода "Защита от дурака"
Ввести элементы массива размерностью N>100; Предусмотреть защиту на каждый ввод элемента массива...

"Защита от дурака"
Доброго времени суток! Прописываю защиту для своей курсовой работы. Нашел фрагмент для защиты от...

Создать запись "Двигатель", которая содержит элементы "Название", "Мощность", "Скорость", "Цена"
Создать запись "Двигатель", которая содержит элементы "Название", "Мощность", "Скорость",...

Защита от дурака, на ввод "мусора" в int
В общем, пытался сделать защиту на ввод неверного значения. Т.е чтобы вводилось значение не более 5...

5
174 / 138 / 105
Регистрация: 14.04.2016
Сообщений: 735
07.12.2017, 17:14 2
Цитата Сообщение от Benjamin_Mendez Посмотреть сообщение
число или символ не целочисленное
Я думал char - это "обрезанный" int, которые не может хранить дробную часть...
0
1118 / 931 / 429
Регистрация: 25.12.2016
Сообщений: 3,030
07.12.2017, 17:47 3
Например так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int get_int()
{
    int x;
    char t;
    printf("Enter integer number.\n> ");
 
    while ( scanf("%d%c", &x, &t) != 2 || t != '\n') {
        printf("Wrong format!\n> ");
        while (getchar() != '\n') {}
    }
 
    return x;
}
 
int main()
{
    int n = get_int();
}
1
0 / 0 / 0
Регистрация: 06.12.2017
Сообщений: 8
07.12.2017, 18:35  [ТС] 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
53
54
// 3.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
 
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
int main(int argc, char *argv[])
{
    setlocale(LC_ALL,"");
    int A,B,i;
    printf("Приветствую пользователь!\nДанная программа пользоваляет вам найти число Армстронга\nВ указаной вами диапазоне от A до B\n");
    
 
        printf("Введите начало диапазона A = ");
    scanf("%d",&A);
    printf("Введите конец диапазона B = ");
    scanf("%d",&B); 
 
 
    for (i=A; i<=B; i++) if (Armstrong(i))
    printf("\n %d \n",i);
    printf("\nЭти числа являются Армстронгом");
    getchar(); 
    getchar();  
    return 0;
 
}
 
int ipow(int x, int n)
 
{
    int i,p=1;
    for (i=1; i<=n; i++) p*=x;
    return p;
}    
 
int Armstrong(int n)
 
{
    int dig[20]={0};
    int i,p=0,c=0,s=0,m=n;
    while (n > 0)
    {
        dig[p++]=n%10;
        c++;
        n=n/10;
    }      
    for (i=0; i<p; i++) 
    s+=ipow(dig[i],c);
    return (m==s);    
}
Добавлено через 1 минуту
C
1
2
3
4
printf("Введите начало диапазона A = ");
scanf("%d",&A);
printf("Введите конец диапазона B = ");
scanf("%d",&B);
здесь нужно добавить условию с проверкой если введенное число целочисленое то прога продолжает работать а если нет то прога просит пользователя ввести заново целочисленое число
0
1118 / 931 / 429
Регистрация: 25.12.2016
Сообщений: 3,030
08.12.2017, 08:24 5
Benjamin_Mendez, так в чём проблема? Просто вызывайте get_int вместо scanf.
0
224 / 107 / 34
Регистрация: 25.11.2017
Сообщений: 380
08.12.2017, 09:32 6
Вводите число как строку (scanf("%s")) а затем конвертируйте его atoi().
Что не сконвертировалось то и ошибка.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2017, 09:32

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Проверка корректности ввода данных или "защита от дурака"
Нужно во всех формах реализовать контроль правилньости ввода данных. Не подскажете на примере, как...

Защита от дурака для консольного приложения "Калькулятор"
Здравствуйте. Написал простенький калькулятор с 4 действиями: &quot;+&quot;, &quot;-&quot;, &quot;*&quot;, &quot;/&quot;. #include...

Контроль ввода данных и "защита от дурака"
Для контроля ввода данных я использую следующую процедуру (нужно обеспечить контроль ввода...

"Защита от дурака" числа с плавающей запятой
Какие есть способы для защиты от ввода чисел с плавающей точкой(запятой) ?


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.