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

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

Войти
Регистрация
Восстановить пароль
 
Рома123
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
#1

Дано целое число. Найти «маленький» тип, которого достаточно для сохранения числа. - C++

24.09.2010, 22:59. Просмотров 478. Ответов 4
Метки нет (Все метки)

Буду очень благодарен=((

1. Дано целое число. Найти «маленький» тип, которого достаточно для сохранения числа.
а) использовать константы границ типов, определенные в файле limits.h
б) не использовать константы границ типов.
2. Найти предельные значения для целочисленных типов. Не использовать заранее определенные константы границ типов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2010, 22:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дано целое число. Найти «маленький» тип, которого достаточно для сохранения числа. (C++):

Дано целое число (N>0) найти наибольшее целое числа k, квадрат которого не превосходит N:k^2<=N - C++
Помогите пожалуйста сделать задачу. Нужно сделать на С++. Вот условие: Дано целое число (N&gt;0) найти наибольшее целое числа k, квадрат...

Дано целое число N (> 0). Найти квадрат данного числа, используя для его вычисления следующую формулу: - C++
Помогите пожалуйста, как решить это всё, как расписать, я новичок в С++, как это всё делается? Вот задание: Дано целое число N (&gt; 0)....

5. Дано целое число K. Найти сумму цифр числа К - C++
Дано целое число K. Найти сумму цифр числа К.

Дано целое число N (> 0). Найти квадрат данного числа - C++
Через do...while Дано целое число N (&gt; 0). Найти квадрат данного числа, используя для его вычисления следующую формулу: N2 = 1 + 3 +...

Дано целое число N. Получить число M, у которого порядок цифр обратный по отношению к N - C++
Написать программу в с++: Дано целое число N. Получить число M, у которого порядок цифр обратный по отношению к N.

Дано трехзначное целое число N. Найти все цифры этого числа - C++
Дано трехзначное целое число N. Найти все цифры этого числа. (Помогите)

4
TheMachinist
244 / 176 / 15
Регистрация: 14.06.2010
Сообщений: 422
24.09.2010, 23:49 #2
Попробуй что-нибудь такое:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <limits.h>
#include <conio.h>
 using namespace std;
int main() {
  int n;
  cin >> n;
if(n < SHRT_MAX && n > SHRT_MIN)
{
n = (short)n; // приводим к типу short
cout << n << " is short." << endl;
}
 
if(n > SHRT_MAX && n < USHRT_MAX)
{
    n = (unsigned short) n; // приводим к unsigned short
    cout << n << " is unsigned short." << endl;
}
 
  _getch();
}
...... и далее по таблице http://www.cplusplus.com/reference/clibrary/climits/

Или вообще не рубишь и хочешь чтоб все за тебя сделали?
1
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.09.2010, 23:53 #3
NikolaWhite, Тогда уж лучше начинать с __int64
1
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,811
25.09.2010, 01:45 #4
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Тогда уж лучше начинать с __int64
Этим как-раз лучше заканчивать, раз уж самый меньший тип ищется...
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
30
31
32
33
34
35
36
37
38
39
40
41
#include <stdio.h>
#include <stdint.h>
#include <limits.h>
 
int main(void){
    union {
        uint64_t    tnUint64;
        int64_t        tnInt64;
        uint32_t    tnUint32;
        int32_t        tnInt32;
        uint16_t    tnUint16;
        int16_t        tnInt16;
        uint8_t        tnUint8;
        int8_t        tnInt8;
    } un;
    
    printf("Number: ");
    if ( scanf("%llu", &un.tnUint64) != 1 ){
        fprintf(stderr, "Input error!\n");
        return 1;
    }
 
    if ( un.tnInt8 == un.tnUint64 )
        printf("int8_t will be enough.\n");
    else if ( un.tnUint8 == un.tnUint64 )
        printf("uint8_t will be enough.\n");
    else if ( un.tnInt16 == un.tnUint64 )
        printf("int16_t will be enough.\n");
    else if ( un.tnUint16 == un.tnUint64 )
        printf("uint16_t will be enough.\n");
    else if ( un.tnInt32 == un.tnUint64 )
        printf("int32_t will be enough.\n");
    else if ( un.tnUint32 == un.tnUint64 )
        printf("uint32_t will be enough.\n");
    else if ( un.tnInt64 == (int64_t)un.tnUint64 )
        printf("int64_t will be enough.\n");
    else 
        printf("uint64_t will be enough.\n");
    
    return 0;
}
работает не корректно, если число в int64_t не помещается
1
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
25.09.2010, 02:19 #5
easybudda,
Сообщение от valeriikozlov
Тогда уж лучше начинать с __int64
Этим как-раз лучше заканчивать, раз уж самый меньший тип ищется...
а сам считываешь с самого начала в 64 тип в своем коде.
PS. именно это я и имел ввиду когда писал NikolaWhite. А как потом искать это дело принципа. Быстрее всего сравнивать с серединой, но меньше кода, когда или с большого в сторону меньшего, или с меньшего в сторону большого сравниваешь, здесь по времени одинаково.
1
25.09.2010, 02:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2010, 02:19
Привет! Вот еще темы с ответами:

Найти наибольшее положительное целое число n, для которого выполняется условие: - C++
условие: Плиз очень надо=) Запрещено размещать тему в нескольких разделах одновременно (кросспостинг), а также дублировать...

Дано целое число N (> 0). Найти сумму N2 + (N + 1)2+ (N + 2)2+ … + (2*N)2 (целое число) - C++
Дано целое число N (&gt; 0). Найти сумму N2 + (N + 1)2+ (N + 2)2+ … + (2*N)2 (целое число).подскажите как решается или подскажите где можно...

Дано вещественное число A и целое число N (> 0). Используя один цикл, вывести все целые степени числа A - C++
Дано вещественное число A и целое число N (&gt; 0). Используя один цикл, вывести все целые степени числа A от 1 до N.

Дано вещественное число A и целое число N (> 0). Найти A в степени N - C++
Дано вещественное число A и целое число N (&gt; 0). Найти A в степени N: AN = A•A• … •A (числа A перемножаются N раз).


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

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

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