Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Troll1
1 / 1 / 2
Регистрация: 23.09.2012
Сообщений: 91
1

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

02.10.2012, 18:15. Просмотров 679. Ответов 16
Метки нет (Все метки)

желательно без использования навороченных функций
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2012, 18:15
Ответы с готовыми решениями:

Написать прогу, которая подсчитывает макс. и мин. значения переменных (int, shorting, longint, uint, char, uchar), ещё указать размер в байтах
Программа должна содержать функцию printf. Без функции std::count и т.п.

написать прогу, которая подсчитывает макс. и мин. значения переменных (int, shorting, longint, uint, char, uchar), ещё указать размер в байтах
помогите плиз. желательно, чтобы программа была написана максимально простым...

написать, прогу которая подсчитывает макс. и мин. значения переменных (int, shorting, longint, uint, char, uchar), ещё указать размер в байтах
Написать желательно простейшим языком(без применения каких-то очень...

Шаблон функции для подсчета значений в массиве
Всем доброго времени суток. Очень прошу помочь написать программу. Нужно...

Программа для подсчета символов
Здравствуйте! Люди пожалуйста помогите написать программу для подсчета...

16
shilovec5377
29 / 54 / 12
Регистрация: 26.05.2011
Сообщений: 755
02.10.2012, 18:18 2
int a,b,max;

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

вот так
0
co6ak
Кошковед
515 / 503 / 63
Регистрация: 12.04.2010
Сообщений: 1,392
02.10.2012, 18:23 3
парень, ты попутал
http://www.cplusplus.com/reference/clibrary/climits/
0
Troll1
1 / 1 / 2
Регистрация: 23.09.2012
Сообщений: 91
02.10.2012, 18:29  [ТС] 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 не получается(
0
Nixy
ComfyMobile
400 / 281 / 34
Регистрация: 24.07.2012
Сообщений: 916
02.10.2012, 18:34 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");
}
1
Troll1
1 / 1 / 2
Регистрация: 23.09.2012
Сообщений: 91
02.10.2012, 18:37  [ТС] 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
0
Nixy
ComfyMobile
400 / 281 / 34
Регистрация: 24.07.2012
Сообщений: 916
02.10.2012, 18:45 7
так вам надо максимальные и минимальные значения типов?

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

Добавлено через 4 минуты
Ну и что мне дает эта таблица?)) Мне надо написать программу, чтобы в конце концов получить результаты из той самой таблицы)
0
Nixy
ComfyMobile
400 / 281 / 34
Регистрация: 24.07.2012
Сообщений: 916
02.10.2012, 19:12 9
Цитата Сообщение от Troll1 Посмотреть сообщение
ага)))

Добавлено через 4 минуты
Ну и что мне дает эта таблица?)) Мне надо написать программу, чтобы в конце концов получить результаты из той самой таблицы)
это не простая таблица это модуль limits.h подключи его и исполтзуй название элементов таблицы , чтобы получать соответствующие значения
0
Toshkarik
1149 / 866 / 90
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
02.10.2012, 19:15 10
C++
1
int minInteger = 1 << sizeof( int ) * 8 - 1;
0
Troll1
1 / 1 / 2
Регистрация: 23.09.2012
Сообщений: 91
02.10.2012, 19:47  [ТС] 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();
}
никак сделать нельзя?
0
Toshkarik
1149 / 866 / 90
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
02.10.2012, 19:56 12
Troll1, в последнем сообщении на прошлой странице я показал как сделать, дальше по аналогии.
0
Troll1
1 / 1 / 2
Регистрация: 23.09.2012
Сообщений: 91
02.10.2012, 20:02  [ТС] 13
Уважаемый форумчанин Toshkarik.
Не могли бы Вы написать функцию для вывода результата на экран через printf?
0
Toshkarik
1149 / 866 / 90
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
02.10.2012, 20:06 14
Вы же сами писали код выше, неужели не можете вывести целочисленный тип на экран?
C++
1
2
int minInteger = 1 << ( sizeof( int ) * 8 - 1 );
printf( "Min int: %d\n", minInteger );
1
ValeryS
Модератор
7272 / 5526 / 692
Регистрация: 14.02.2011
Сообщений: 18,718
02.10.2012, 20:21 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
1
Troll1
1 / 1 / 2
Регистрация: 23.09.2012
Сообщений: 91
02.10.2012, 20:22  [ТС] 16
Мне запрещено использовать sizeof!!! Сказали, что, если все время прибавлять по 1, то можно увидеть закономерность и написать программу без sizeof
0
ValeryS
Модератор
7272 / 5526 / 692
Регистрация: 14.02.2011
Сообщений: 18,718
02.10.2012, 20:44 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);
1
02.10.2012, 20:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2012, 20:44

программа для подсчета квадрата
здравствуйте! работу в цехе, по производству пластиковых окон, хочу сделать...

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

Программа для подсчета элементов массива
Здравствуйте. Очень нужна помощь, надо написать программу для подсчета...


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

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

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