Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
VladSharikov
 Аватар для VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
17.01.2013, 10:09     Как определить является ли число int ? #1
сабж
необходимо написать метод для того, чтобы определить число int.
видимо должны быть какие-то критерии.

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

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

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

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

Определить является ли число к степенью 3 C++
Определить, является ли число палиндромом C++
Дано натуральное число N. Определить, является ли оно палиндромом. Число-палиндром можно читать справа налево и слева направо одинаково. Например, C++
C++ Определить является ли число простым
C++ Дано натуральное четырехзначное число n. Определить, является ли это число перевертышем
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UserAK
70 / 70 / 4
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
17.01.2013, 10:47     Как определить является ли число int ? #2
вот определяется число int
C++
1
int i;
Добавлено через 1 минуту
а если вы хотите по случайному адресу узнать тип данных, то вряд ли получится

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

Не по теме:

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



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

Добавлено через 6 минут
а если вам только целые десятичные, то да. самый левый символ isdigit() или '-' остальные isdigit()
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
17.01.2013, 12:43     Как определить является ли число int ? #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 Посмотреть сообщение
У месть есть строка с цифрами.
Строка интом быть не может и числом не является.
-=ЮрА=-
Заблокирован
Автор FAQ
17.01.2013, 12:45     Как определить является ли число int ? #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);
}
Миниатюры
Как определить является ли число int ?  
-=ЮрА=-
17.01.2013, 12:50
  #8

Не по теме:

PS:

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

-=ЮрА=-
Заблокирован
Автор FAQ
17.01.2013, 12:56     Как определить является ли число int ? #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
Миниатюры
Как определить является ли число int ?  
VladSharikov
 Аватар для VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
17.01.2013, 19:17  [ТС]     Как определить является ли число int ? #10
жжете мужчины.
Цитата Сообщение от taras atavin Посмотреть сообщение
Строка интом быть не может и числом не является.
я не говорю, что строка = число. я говорю, что есть строка с цифрами (строка содержит цифры).

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

всем:
имеется строка, содержащая в себе '21324123451234215' не может быть интом, т.к. инт
целое со знаком будет представлять значения от −2 147 483 648 (-231) до 2 147 483 647 (231−1)
. Есть ли другие критерии.
P.S.: видимо забыл указать. требуется проверка только на INT
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4922 / 2665 / 243
Регистрация: 29.11.2010
Сообщений: 7,420
17.01.2013, 19:23     Как определить является ли число int ? #11
VladSharikov, а что мешает просто сравнить с INT_MAX и INT_MIN после всего?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2013, 19:56     Как определить является ли число int ?
Еще ссылки по теме:

C++ Как в выделенную память записать поочередно число int, массив char[n], и еще число int
Как можно увеличить размер вектора, который является элементом вектора vector<vector<int>>arr(n, vector <int>) C++

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

Или воспользуйтесь поиском по форуму:
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
17.01.2013, 19:56     Как определить является ли число int ? #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;
}
Yandex
Объявления
17.01.2013, 19:56     Как определить является ли число int ?
Ответ Создать тему
Опции темы

Текущее время: 18:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru