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

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

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

желательно без использования навороченных функций
0
QA
Эксперт
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), ещё указать размер в байтах
Написать желательно простейшим языком(без применения каких-то очень навороченных функций)....

Как пишутся переменные паскаля integer x; real x; x:boolean; shortint;longint;double и другие в си
как пишутся переменные паскаля integer x; real x; x:boolean; shortint;longint;double и другие в си....

Найти миним.положит. и макс.отрицательный из 10 эл. указать их номера за порядком, если отсуствуют вывести 0
Найти миним.положит. и макс.отрицательный из 10 эл. указать их номера за порядком, если отсуствуют...

16
shilovec5377
30 / 55 / 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
Кошковед
516 / 504 / 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
02.10.2012, 18:29
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
1168 / 881 / 94
Регистрация: 03.08.2011
Сообщений: 2,450
Завершенные тесты: 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
1168 / 881 / 94
Регистрация: 03.08.2011
Сообщений: 2,450
Завершенные тесты: 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
1168 / 881 / 94
Регистрация: 03.08.2011
Сообщений: 2,450
Завершенные тесты: 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
Модератор
7906 / 5883 / 773
Регистрация: 14.02.2011
Сообщений: 20,233
Завершенные тесты: 1
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
Модератор
7906 / 5883 / 773
Регистрация: 14.02.2011
Сообщений: 20,233
Завершенные тесты: 1
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
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2012, 20:44

Программа подсчета пиковых значений
Здравствуйте, прошу знающих людей помочь при написании программы. Программа делает следующее:...

Записал небольшой макрос для подсчета значений, как вывести сообщение с расчетом значений?
Здравствуйте, снова появилась идейка для быстродействия, записал макрос, он работает, сортирует как...

Программа выдает ошибку, что нужна точка с запятой после слова shortint
Почему программа выдает ошибку, что нужна точка с запятой после слова shortint.Помогите завтра...


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

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

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