#include <iostream>
#include <float.h>      /* For limits on floating-point types */

using namespace std;

int  main()
{
	cout << "char: " << CHAR_MIN << " to " << CHAR_MAX << endl; 
	cout << "unsigned char: 0 to " << UCHAR_MAX << endl;
	cout << "short: " << SHRT_MIN << " to " << SHRT_MAX << endl;
	cout << "unsigned short: 0 to " << USHRT_MAX << endl;
	cout << "int: " << INT_MIN << " to " << INT_MAX << endl;
	cout << "unsigned int: 0 to " << UINT_MAX << endl;
	cout << "long: " << LONG_MIN << " to " << LONG_MAX << endl;
	cout << "unsigned long: 0 to " << ULONG_MAX << endl;
	cout << "long long: " << LLONG_MIN << " to " << LLONG_MAX << endl;
	cout << "unsigned long long: 0 to " << ULLONG_MAX << endl;
	cout << endl;

	cout << "smallest non-zero value of float: " << FLT_MIN << endl;
	cout << "largest value of float: " << FLT_MAX << endl;
	cout << "precision of float: " << FLT_DIG << endl;
	cout << "smallest non-zero value of double: " << DBL_MIN << endl;
	cout << "largest value of double: " << DBL_MAX << endl;
	cout << "precision of double: " << DBL_DIG << endl;
	cout << "smallest non-zero value of long double: " << LDBL_MIN << endl;
	cout << "largest value of long double: " << LDBL_MAX << endl;
	cout << "precision of long: " << LDBL_DIG << endl;
	cout << endl;

	return 0;

}

