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

Программа для подсчета макс. и миним. значений прерменных int shortint longint - C++

Восстановить пароль Регистрация
 
Troll1
1 / 1 / 1
Регистрация: 23.09.2012
Сообщений: 91
02.10.2012, 18:15     Программа для подсчета макс. и миним. значений прерменных int shortint longint #1
желательно без использования навороченных функций
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2012, 18:15     Программа для подсчета макс. и миним. значений прерменных int shortint longint
Посмотрите здесь:

C++ Программа для подсчета символов
C++ Программа для подсчета элементов массива
C++ написать, прогу которая подсчитывает макс. и мин. значения переменных (int, shorting, longint, uint, char, uchar), ещё указать размер в байтах
написать прогу, которая подсчитывает макс. и мин. значения переменных (int, shorting, longint, uint, char, uchar), ещё указать размер в байтах C++
C++ Написать прогу, которая подсчитывает макс. и мин. значения переменных (int, shorting, longint, uint, char, uchar), ещё указать размер в байтах
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
shilovec5377
 Аватар для shilovec5377
28 / 53 / 1
Регистрация: 26.05.2011
Сообщений: 752
02.10.2012, 18:18     Программа для подсчета макс. и миним. значений прерменных int shortint longint #2
int a,b,max;

if (a>b) max=a; else max=b;

вот так
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
02.10.2012, 18:23     Программа для подсчета макс. и миним. значений прерменных int shortint longint #3
парень, ты попутал
http://www.cplusplus.com/reference/clibrary/climits/
Troll1
1 / 1 / 1
Регистрация: 23.09.2012
Сообщений: 91
02.10.2012, 18:29  [ТС]     Программа для подсчета макс. и миним. значений прерменных int shortint longint #4
Спасибо, но про эту таблицу я знаю. Мне саму программу надо написать, чтобы получить эти значения. Я сделал для char и uchar
...
const unsigned char min_uchar = 0, max_uchar = unsigned char(-1);
const char max_char = max_uchar >> 1, min_char = max_char + 1;
...
а для int не получается(
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
02.10.2012, 18:34     Программа для подсчета макс. и миним. значений прерменных int shortint longint #5
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
#include <stdio.h>
#include <iostream>
#include "windows.h"
 
using namespace std;
 
int main(){
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int ia,ib;
    long int lia,lib;
    short int sia,sib;
    char c;
    cout<< "Что сравниваем : " <<endl << "i- int"<<endl <<"s- short int"<<endl;
    cout<< "l- long int"<< endl;
    cin>> c;
    if (c=='i') {
        cout << endl << "Введите числа : ";
        cin>> ia >> ib;
        ia > ib ?  (cout<<endl<< ia << " > " << ib << endl) :
                   (cout<<endl<< ia << " < " << ib <<endl);
    }
    if (c=='l') {
        cin>> lia >> lib;
        lia > lib ?  (cout<<endl<< lia << " > " << lib << endl) :
                   (cout<<endl<< lia << " < " << lib <<endl);
    }
    if (c=='s') {
        cin>> sia >> sib;
        sia > sib ?  (cout<<endl<< sia << " > " << sib << endl) :
                     (cout<<endl<< sia << " < " << sib <<endl);
    }
    system("pause");
}
Troll1
1 / 1 / 1
Регистрация: 23.09.2012
Сообщений: 91
02.10.2012, 18:37  [ТС]     Программа для подсчета макс. и миним. значений прерменных int shortint longint #6
А попроще можно переделать, типо так
C++
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
void main (void)
{
    const unsigned char min_uchar = 0, max_uchar = (unsigned char)(-1);
    const char max_char = max_uchar >> 1, min_char = max_char + 1;
    printf("Min uchar: %d\n",(unsigned int)(min_uchar));
    printf("Max uchar: %d\n",(unsigned int)(max_uchar));
    printf("Min char: %d\n",int(min_char));
    printf("Max char: %d\n",int(max_char));
    getchar();
}
только для int shortint longint
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
02.10.2012, 18:45     Программа для подсчета макс. и миним. значений прерменных int shortint longint #7
так вам надо максимальные и минимальные значения типов?

Добавлено через 3 минуты
Цитата Сообщение от co6ak Посмотреть сообщение
тогда вот писали вам
Troll1
1 / 1 / 1
Регистрация: 23.09.2012
Сообщений: 91
02.10.2012, 18:49  [ТС]     Программа для подсчета макс. и миним. значений прерменных int shortint longint #8
ага)))

Добавлено через 4 минуты
Ну и что мне дает эта таблица?)) Мне надо написать программу, чтобы в конце концов получить результаты из той самой таблицы)
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
02.10.2012, 19:12     Программа для подсчета макс. и миним. значений прерменных int shortint longint #9
Цитата Сообщение от Troll1 Посмотреть сообщение
ага)))

Добавлено через 4 минуты
Ну и что мне дает эта таблица?)) Мне надо написать программу, чтобы в конце концов получить результаты из той самой таблицы)
это не простая таблица это модуль limits.h подключи его и исполтзуй название элементов таблицы , чтобы получать соответствующие значения
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
02.10.2012, 19:15     Программа для подсчета макс. и миним. значений прерменных int shortint longint #10
C++
1
int minInteger = 1 << sizeof( int ) * 8 - 1;
Troll1
1 / 1 / 1
Регистрация: 23.09.2012
Сообщений: 91
02.10.2012, 19:47  [ТС]     Программа для подсчета макс. и миним. значений прерменных int shortint longint #11
Мне нельзя использовать этот модуль(limits.h)!!!))(Если можно было бы сам бы уже давно все сделал) По аналогии с этим
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
void main (void)
{
    const unsigned char min_uchar = 0, max_uchar = (unsigned char)(-1);
    const char max_char = max_uchar >> 1, min_char = max_char + 1;
    const int... 
    printf("Min uchar: %d\n",(unsigned int)(min_uchar));
    printf("Max uchar: %d\n",(unsigned int)(max_uchar));
    printf("Min char: %d\n",int(min_char));
    printf("Max char: %d\n",int(max_char));
    printf("Min int: %d\n", ...
    getchar();
}
никак сделать нельзя?
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
02.10.2012, 19:56     Программа для подсчета макс. и миним. значений прерменных int shortint longint #12
Troll1, в последнем сообщении на прошлой странице я показал как сделать, дальше по аналогии.
Troll1
1 / 1 / 1
Регистрация: 23.09.2012
Сообщений: 91
02.10.2012, 20:02  [ТС]     Программа для подсчета макс. и миним. значений прерменных int shortint longint #13
Уважаемый форумчанин Toshkarik.
Не могли бы Вы написать функцию для вывода результата на экран через printf?
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
02.10.2012, 20:06     Программа для подсчета макс. и миним. значений прерменных int shortint longint #14
Вы же сами писали код выше, неужели не можете вывести целочисленный тип на экран?
C++
1
2
int minInteger = 1 << ( sizeof( int ) * 8 - 1 );
printf( "Min int: %d\n", minInteger );
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
02.10.2012, 20:21     Программа для подсчета макс. и миним. значений прерменных int shortint longint #15
Цитата Сообщение от Troll1 Посмотреть сообщение
const unsigned char min_uchar = 0, max_uchar = unsigned char(-1);
const char max_char = max_uchar >> 1, min_char = max_char + 1;
все правильно

Цитата Сообщение от Troll1 Посмотреть сообщение
а для int не получается(
а что не получается? может с приведением напутал?
C++
1
2
unsigned int  maxUInt=(unsigned int)(-1);
 int  maxInt=-1/2;
выводи не только в десятичном но и в шестнадцатеричном виде
тогда поймешь где ошибка
у unsigned все биты 1 0xFFFFFFFF
а у signed старший равен 0x7FFFFFFF
C++
1
printf("unsigned Max=%d %x signedMax %d %x",maxUInt,maxUInt,maxInt,maxInt);
Для длинных придется добавить спецификатор чтобы все биты заполнились -1L
Troll1
1 / 1 / 1
Регистрация: 23.09.2012
Сообщений: 91
02.10.2012, 20:22  [ТС]     Программа для подсчета макс. и миним. значений прерменных int shortint longint #16
Мне запрещено использовать sizeof!!! Сказали, что, если все время прибавлять по 1, то можно увидеть закономерность и написать программу без sizeof
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2012, 20:44     Программа для подсчета макс. и миним. значений прерменных int shortint longint
Еще ссылки по теме:

C++ Программа для работы с текстовым файлом. Описать ф-ю для подсчета строк, состоящих из одинаковых символов
C++ Программа для подсчета калорий выдает неправильный результат
Программа для подсчета количества цифр в строке C++

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
02.10.2012, 20:44     Программа для подсчета макс. и миним. значений прерменных int shortint longint #17
вот полностью рабочий код
C++
1
2
3
4
unsigned int  maxUInt=(unsigned int)(-1);
 int  maxInt=(int)((unsigned int)(-1)/2);
 
printf("unsigned Max=%ud 0x%x signedMax %d 0x%x",maxUInt,maxUInt,maxInt,maxInt);
есть некоторые косячки которые я упустил пока писал пост
для maxInt
нужно явно приводить -1 к unsigned int иначе он приводится к int и деление на 2 даст 0
(то же самое и со сдвигом, будут копироваться знаковый бит и получится опять -1)
C++
1
 int  maxInt=(int)((unsigned int)(-1)>>1);
для вывода беззнакового добавить u(явно сказать что выводим unsigned)
unsigned Max=%ud

Добавлено через 5 минут
Вот код с минимумом (для знаковых) для беззнаковых минимум 0(не стал выводить
C++
1
2
3
4
unsigned int  maxUInt=(unsigned int)(-1);
 int  maxInt=(int)((unsigned int)(-1)>>1);
int  minInt=maxInt+1;
printf("unsigned Max=%ud 0x%x \nsignedMax %d 0x%x \nsignedMin %d 0x%x",maxUInt,maxUInt,maxInt,maxInt,minInt,minInt);
Yandex
Объявления
02.10.2012, 20:44     Программа для подсчета макс. и миним. значений прерменных int shortint longint
Ответ Создать тему
Опции темы

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