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

Определение границ типов данных - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
us3r
5 / 5 / 4
Регистрация: 20.04.2011
Сообщений: 101
27.09.2011, 21:51     Определение границ типов данных #1
Задача такова. Требуется определить максимальные границы для основных типов данных, т.е. int, double, char, float.
Вот набросал, в принципе все работает, но препод сказал, что можно загнать все в какую-то функцию size of или как-то так и получится универсальная программа. Подскажите как это можно исправить.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
int main()
{
   int i, N, a;
   a=2;
   cin<<N;
 
   for (i=1; i<=N-1; i++)
               a*=2; 
               a=a/2;
 
   cout<<"Границы int";
   cout<<"от"<<a;
   cout<<"до"<<a-1;
 
return 0;
}
//ну для всех остальных по аналогии циклами, где N количество бит
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.09.2011, 21:58     Определение границ типов данных #2
Для этого есть символические константы:
INT_MAX, INT_MIN, DBL_MAX и т.д. в библиотеках <limits.h> и <float.h>
А если нужны размерности типов, то есть оператор sizeof():
sizeof(int), sizeof(double) и т.д.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
27.09.2011, 22:02     Определение границ типов данных #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <limits>
 
int main() 
{
    std::cout << "int max is "    << std::numeric_limits<int>::max()    << '\n'
              << "int min is "    << std::numeric_limits<int>::min()    << '\n'
              << "char max is "   << std::numeric_limits<char>::max()   << '\n'
              << "char min is "   << std::numeric_limits<char>::min()   << '\n'
              << "float max is "  << std::numeric_limits<float>::max()  << '\n'
              << "float min is "  << std::numeric_limits<float>::min()  << '\n'
              << "double max is " << std::numeric_limits<double>::max() << '\n'
              << "double min is " << std::numeric_limits<double>::min() << '\n';
    return 0;
}
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.09.2011, 22:03     Определение границ типов данных #4
Цитата Сообщение от us3r Посмотреть сообщение
все работает

C++
1
   cin<<N;
Не у верен, что это у вас работает
us3r
5 / 5 / 4
Регистрация: 20.04.2011
Сообщений: 101
27.09.2011, 22:26  [ТС]     Определение границ типов данных #5
описался, в том то и дело что нужно без лимитсов.
Yandex
Объявления
27.09.2011, 22:26     Определение границ типов данных
Ответ Создать тему
Опции темы

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