Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
#1

Как определить является ли число int ? - C++

17.01.2013, 10:09. Просмотров 1051. Ответов 11
Метки нет (Все метки)

сабж
необходимо написать метод для того, чтобы определить число int.
видимо должны быть какие-то критерии.

что за критерии?

что-то вроде без плавающей точки, да?

можно все критерии?

код не пишите, напишу сам. просто нужные критерии.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2013, 10:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как определить является ли число int ? (C++):

Как в выделенную память записать поочередно число int, массив char[n], и еще число int - C++
Выделяю память void* Start=malloc(Size); Как туда записать поочередно число int, массив char, и еще число int?

Дано натуральное четырехзначное число n. Определить, является ли это число перевертышем - C++
Дано натуральное четырехзначное число n. Определить, является ли это число перевертышем. Например, числа 2222, 6116, 0440 и т.д.

Как можно увеличить размер вектора, который является элементом вектора vector<vector<int>>arr(n, vector <int>) - C++
Написал программу, которая создает вектор 'а' векторов 'b', вектора 'b' содержат 2 числа. Стало интересно, как нужно изменить программу...

Дано натуральное число N. Определить, является ли оно палиндромом. Число-палиндром можно читать справа налево и слева направо одинаково. Например, - C++
Дано натуральное число N. Определить, является ли оно палиндромом. Число-палиндром можно читать справа налево и слева направо одинаково....

Определить, является ли число палиндромом - C++
Дано натуральное число n (n&lt;9999). Определить, является ли это число палиндромом (перевертышем) с учетом четырех цифр (например 2222,...

Определить, является ли число палиндромом - C++
Проверить истинность высказывания: «Данное четырехзначное число читается одинаково слева направо и справа налево »

11
UserAK
73 / 73 / 4
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
17.01.2013, 10:47 #2
вот определяется число int
C++
1
int i;
Добавлено через 1 минуту
а если вы хотите по случайному адресу узнать тип данных, то вряд ли получится

Добавлено через 7 минут
это в загадочных языках типа бейсика тип данных принято определять по сообщениям об ошибках
а в с++ тип задаётся в определении переменной
0
VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
17.01.2013, 11:33  [ТС] #3
UserAK,
шутите, да?
У месть есть строка с цифрами. Как определить может ли ее содержимое быть числом типа INT.
Если строка dfbdf - не может.
Если строка 31434. - не может.
Есил строка .03423 - не может.
Какие еще моменты, которые нужно учесть?

Не по теме:

а вы часом не программист? боюсь за будующее нашей страны с такими узко-мыслящими программистами. без обид.



Добавлено через 7 минут
Ответ
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
17.01.2013, 11:39 #4
Чтобы узнать тип переменной: typeid
Там ниже пример есть.
0
UserAK
73 / 73 / 4
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
17.01.2013, 12:35 #5
Цитата Сообщение от VladSharikov Посмотреть сообщение
шутите, да?
вы же про строку ничего не сказали, поди догадайся
со строкой сложно, это может быть строка вида 0x0FAB01 например и это будет вполне себе int да ещё и переводить надо

Добавлено через 6 минут
а если вам только целые десятичные, то да. самый левый символ isdigit() или '-' остальные isdigit()
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
17.01.2013, 12:43 #6
Цитата Сообщение от VladSharikov Посмотреть сообщение
сабж
необходимо написать метод для того, чтобы определить число int.
видимо должны быть какие-то критерии.
Если сложно проверить декларацию переменной, то
C++
1
2
3
4
5
6
7
8
9
10
11
12
bool CheckInt(int x)
{
 return true;
}
bool CheckInt(float x)
{
 return false;
}
bool CheckInt(double x)
{
 return false;
}
.

Добавлено через 1 минуту
Цитата Сообщение от VladSharikov Посмотреть сообщение
У месть есть строка с цифрами.
Строка интом быть не может и числом не является.
0
-=ЮрА=-
Заблокирован
Автор FAQ
17.01.2013, 12:45 #7
VladSharikov,
Цитата Сообщение от VladSharikov Посмотреть сообщение
что за критерии?
что-то вроде без плавающей точки, да?
можно все критерии?
код не пишите, напишу сам. просто нужные критерии.
- критериев много и даже если все они выполняются всё ранво может быть двойственность. Без кода в этом задании никуда, на словах долго рассказывать. Ниже железная проверка на int
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
template <class T>
bool isInteger(T val);
 
int main()
{
    int iVal    = 5;
    double dVal = 5;
    cout<<"IsInteger : "<<endl;
    cout<<"iVal : "<<(isInteger(iVal) ? "true" : "false")<<endl;
    cout<<"dVal : "<<(isInteger(dVal) ? "true" : "false")<<endl;
    return 0;
}
 
template <class T>
bool isInteger(T val)
{
    return typeid(val) == typeid(int);
}
0
Миниатюры
Как определить является ли число int ?  
-=ЮрА=-
17.01.2013, 12:50
  #8

Не по теме:

PS:

Цитата Сообщение от VladSharikov Посмотреть сообщение
У месть есть строка с цифрами. Как определить может ли ее содержимое быть числом типа INT.
- НИКАК, т.к срока из чисел может быть преобразована практически к любому типу с плавающей точкой(даже если нет разделителей целой и дробной части) или целочисленному типу. Твоё задание надо смотреть в конкретной реализации и случае!

0
-=ЮрА=-
Заблокирован
Автор FAQ
17.01.2013, 12:56 #9
Вот простой код как иллюстрация слов
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- НИКАК, т.к срока из чисел может быть преобразована практически к любому типу с плавающей точкой(даже если нет разделителей целой и дробной части) или целочисленному типу.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
 
int main()
{
    char str[] = "256";
    int    iVal= 0;
    double dVal= 0;
 
    printf("IsInteger :");
    printf("\niVal :\n");
    if(sscanf(str, "%d", &iVal))
        printf("true %d", iVal);
    else
        printf("false");
    printf("\ndVal :\n");
    if(sscanf(str, "%lf", &dVal))
        printf("true %lf", dVal);
    else
        printf("false");
    getchar();
    return 0;
}
http://codepad.org/plFLtAPC
0
Миниатюры
Как определить является ли число int ?  
VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
17.01.2013, 19:17  [ТС] #10
жжете мужчины.
Цитата Сообщение от taras atavin Посмотреть сообщение
Строка интом быть не может и числом не является.
я не говорю, что строка = число. я говорю, что есть строка с цифрами (строка содержит цифры).

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Вот простой код как иллюстрация слов
его слов, не моих.
строка с цифрами
taras atavin, это тоже не причем.

всем:
имеется строка, содержащая в себе '21324123451234215' не может быть интом, т.к. инт
целое со знаком будет представлять значения от −2 147 483 648 (-231) до 2 147 483 647 (231−1)
. Есть ли другие критерии.
P.S.: видимо забыл указать. требуется проверка только на INT
0
MrGluck
Модератор
Эксперт CЭксперт С++
7492 / 4607 / 693
Регистрация: 29.11.2010
Сообщений: 12,603
17.01.2013, 19:23 #11
VladSharikov, а что мешает просто сравнить с INT_MAX и INT_MIN после всего?
0
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
17.01.2013, 19:56 #12
Если я правильно понял задание, то можно придумать что то на основе этого:
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 <iostream>
#include <string>
 
int main()
{
    std::string int_val = "12345";
    std::string long_long_val = "1234567891011";
    try
    {
        int some_int = stoi(int_val);
        std::cout<<"int_val is int\n";
    }
    catch (std::out_of_range&)
    {
        std::cout<<"int_val is not int\n";
    }
    try
    {
        int some_int = stoi(long_long_val);
        std::cout<<"long_long_val is int\n";
    }
    catch (std::out_of_range&)
    {
        std::cout<<"long_long_val is not int\n";
    }
    std::cout<<"\n";
    system("pause");
    return 0;
}
0
17.01.2013, 19:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2013, 19:56
Привет! Вот еще темы с ответами:

Определить, является ли число палиндромом - C++
Ввести с клавиатуры пятизначное число и определить, является ли оно палиндромом, т.е. одинаково читается в обоих направлениях (например,...

Определить, является ли число двояким - C++
Всем привет, дано натуральное число N. Для заданного натурального числа N требуется определить, оно двоякое или нет.

Определить является ли число простым - C++
С клавитуры вводите целое положительное число.Определить является оно простым.Простым наз.число которое делится на 1 или на себя.

Определить является ли число k степенью 3 - C++
Определить является ли число k степенью 3. Помогите решить...


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

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

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