Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
TravienDay
0 / 0 / 0
Регистрация: 11.07.2014
Сообщений: 33
#1

Как обнаружить, что введено не целое число?

11.09.2014, 17:36. Просмотров 1396. Ответов 21
Метки нет (Все метки)

Например есть прога, я ввожу натуральное число
как сделать, если я введу не 112 а 122.3 например, чтобы программа написала число не натуральное?
C++
1
if a!=int
не работает

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

0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2014, 17:36
Ответы с готовыми решениями:

Написать программу, считывающую целое число с клавиатуры и предупреждающую вас, если введено нецелое число.
Написать программу, считывающую целое число с клавиатуры и предупреждающую вас,...

Проверка на то, что введено число, а не символ не работает
Уходит в бесконечный цикл! Если введен символ, вместо цифр. Как исправить?...

Вводить пятизначное число пока не будет введено правильноеповторять ввод, пока не будет введено пятизначное число. Не получается выполнить задание.
#include <iostream> using namespace std; int main() { setlocale(LC_ALL,...

Составить функцию, которая, получив целое число определяет, уменьшается ли оно в целое число раз
задание такое Составить функцию, которая, получив целое число определяет,...

Написать объявление функции, возвращающую целое число и принимающую указатель на целое число
объявите функцию f2, возвращающую результат целого типа и передающую указатель...

21
_Ivana
3233 / 1861 / 235
Регистрация: 01.03.2013
Сообщений: 5,091
Записей в блоге: 5
11.09.2014, 17:39 #2
У тебя ошибка - ты сравниваешь значение а с неким типом, надо тип а сравнивать:
C++
1
if type(a) != type.int
0
ForEveR
В астрале
Эксперт С++
7995 / 4754 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
11.09.2014, 17:40 #3
TravienDay, Парсить, как же еще.
0
Tulosba
:)
Эксперт С++
4747 / 3241 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
11.09.2014, 17:42 #4
Цитата Сообщение от _Ivana Посмотреть сообщение
if type(a) != type.int
што эта?
TravienDay, чтобы сделать ограничения на ввод целых (если речь о консоли) имеет смысл сделать ввод строки с дальнейшим её разбором.
0
TravienDay
0 / 0 / 0
Регистрация: 11.07.2014
Сообщений: 33
11.09.2014, 17:46  [ТС] #5
_Ivana, что-то не работает
например прога:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <math.h>
using namespace std;
 
int main()
{
    setlocale(0,"");
    int a,s1,s2,s3,s4,s5;
    cout<<"Введите натуральное трехзначное число\n";
    cin>>a;
    if ((a<100) || (a>999))
    {
        cout<<"Число не трехзначное\n";
    }
    else if (type(a)!=type.int)
    {
        cout<<"Число не натуральное\n";
    }
    else cout<<"Число трехзначное\n";
}
где ошибка?
0
Tulosba
:)
Эксперт С++
4747 / 3241 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
11.09.2014, 17:47 #6
Цитата Сообщение от TravienDay Посмотреть сообщение
где ошибка?
Ошибка в сообщении #2
0
TravienDay
0 / 0 / 0
Регистрация: 11.07.2014
Сообщений: 33
11.09.2014, 17:47  [ТС] #7
Tulosba, а как реализовать это в простой программе? (пример выше)
0
ForEveR
В астрале
Эксперт С++
7995 / 4754 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
11.09.2014, 17:47 #8
TravienDay, Ошибка в том, что стоит почитать хотя бы что-то по С++, прежде чем что-то делать...
0
zss
Модератор
Эксперт С++
6988 / 6550 / 4153
Регистрация: 18.12.2011
Сообщений: 17,282
Завершенные тесты: 1
11.09.2014, 17:48 #9
Предлагаю так
C++
1
2
3
4
5
6
    int n;
    char c;
    cin>>n;
    cin>>c;
    if(c=='.')
        cout<<"введено не целое число\n";
1
Boleon
Guardian of Asgaard
373 / 316 / 197
Регистрация: 11.11.2013
Сообщений: 1,046
Завершенные тесты: 1
11.09.2014, 17:49 #10
Можно поизвращаться - вводить число в строку, если в строке будет точка, то - "не натуральное", если не будет, то соответственно "натуральное"
0
_Ivana
3233 / 1861 / 235
Регистрация: 01.03.2013
Сообщений: 5,091
Записей в блоге: 5
11.09.2014, 17:51 #11
Tulosba, я сравниваю тип переменной а (получая его в результате действия функции "type") и тип int, они одного типа type, и их можно сравнивать.
0
Tulosba
:)
Эксперт С++
4747 / 3241 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
11.09.2014, 17:53 #12
Цитата Сообщение от _Ivana Посмотреть сообщение
я сравниваю тип переменной а
Приведенный в сообщении #2 код не является кодом на C++.
0
IrineK
Заблокирован
11.09.2014, 17:55 #13
Лучший ответ Сообщение было отмечено TravienDay как решение

Решение

C++
1
if (fabs(a - (int)a)>0)
1
TravienDay
0 / 0 / 0
Регистрация: 11.07.2014
Сообщений: 33
11.09.2014, 18:08  [ТС] #14
Ничего не подошло.
0
zss
Модератор
Эксперт С++
6988 / 6550 / 4153
Регистрация: 18.12.2011
Сообщений: 17,282
Завершенные тесты: 1
11.09.2014, 18:10 #15
Мой код из поста 9 работает. Я проверил!
0
TravienDay
0 / 0 / 0
Регистрация: 11.07.2014
Сообщений: 33
11.09.2014, 18:18  [ТС] #16
zss, да все ок. Спасибо )

Добавлено через 1 минуту
только не пойму почему мы не вводим второй раз переменную c?
C++
1
cin>>c;
Добавлено через 44 секунды
то есть она есть но вижуал не сообщает нам чтобы ее ввести, вводим только n

Добавлено через 1 минуту
ага но если вводишь число нормально то приходится вбивать его 2 раза печаль. Не подходит но все-равно спасибо
0
zss
Модератор
Эксперт С++
6988 / 6550 / 4153
Регистрация: 18.12.2011
Сообщений: 17,282
Завершенные тесты: 1
11.09.2014, 18:25 #17
Ввод числа происходит до первого символа, который не может принадлежать числу.
Причем, этот символ остается в потоке.
Если за числом идет Enter (\n), то он как раз и является этим символом.
0
TravienDay
0 / 0 / 0
Регистрация: 11.07.2014
Сообщений: 33
11.09.2014, 18:51  [ТС] #18
IrineK, мм а ваш вариант самый классный, только я его немного изменил для своей программы. Спасибо огромное!) классная идея
0
_Ivana
3233 / 1861 / 235
Регистрация: 01.03.2013
Сообщений: 5,091
Записей в блоге: 5
11.09.2014, 19:48 #19
Цитата Сообщение от Tulosba Посмотреть сообщение
Приведенный в сообщении #2 код не является кодом на C++.
Но ведь и сам вопрос не имеет смысла в С++, как статически типизированном языке, не так ли?
0
gru74ik
Модератор
Эксперт CЭксперт С++
4679 / 1993 / 303
Регистрация: 20.02.2013
Сообщений: 5,291
Записей в блоге: 24
11.09.2014, 20:36 #20
Цитата Сообщение от TravienDay Посмотреть сообщение
C++
1
if a!=int
Может подойдёт проверка на int ?
0
11.09.2014, 20:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.09.2014, 20:36

Как определить, что введено в строке
Задание на картинке

Как посчитать сколько раз было введено число
Возникла проблема. Надо посчитать сколько пользователь ввел четное число Я так...

Если целое число М делится на целое число N, то на экран выводится частное от деления, в противном случае выводится сообщение
Если целое число М делится на целое число N, то на экран выводится частное от...


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

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

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