2016-10-19 4 views
2

В C, как я могу написать программу, чтобы найти максимальное значение целочисленной переменной? Насколько я знаю, максимальное значение целочисленной переменной равно 2147483647, но как я могу представить это в программе на C?Как написать программу, чтобы найти максимальное значение целочисленной переменной

ответ

7

Как я знаю, что максимальное значение целочисленной переменной является 2147483647

Это неверное предположение. Максимальное значение int может варьироваться в разных системах. Например, на 16-разрядной машине максимальное значение int не равно 2147483647.

Вам не нужно искать это самостоятельно. Существуют предопределенные макросы, которые можно использовать с <limits.h>. Например, INT_MAX представляет максимальное значение, которое может содержать int.

6

Вы можете найти это значение программно с помощью вычислений. Невозможно обнаружить, что вы «в конце», и приращение наибольшего целого числа имеет неопределенное поведение.

Именно поэтому самые большие и наименьшие значения интегральных типов предоставляются стандартной библиотекой в ​​заголовке <limits.h>. Это ваша ответственность за то, чтобы результаты операций соответствовали требуемым типам.

+0

Okey это своего рода домашнее задание, но ı не может понять домашнюю работу, но ответ очень объясняет, спасибо за это. – JaxTeller61

+0

@Kerrek Вы можете найти их программно. Возвращаемые значения должны быть специфичными для среды и используемого компилятора. См. Мой пример ниже. –

+1

@PeterH: Ну, это мой ответ. Считаете ли вы, что «нахождение» - это придирчивость, я полагаю. Я использовал «поиск» в смысле «вычисления», а не «поиск». Немного переписал. –

2

Максимальные и минимальные значения определены в пределах. Вы можете проверить их, используя следующий код.

C Версия:

#include <stdio.h> 
#include <limits.h> 


int main() 
{ 
    printf("Minimum Int value:%d\n", INT_MIN); 
    printf("Minimum Int value:%d\n", INT_MAX); 
    return 0; 
} 

В C++

#include "stdafx.h" 
#include <iostream> 
#include <limits> 
using namespace std; 

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    cout << "Minimum Int value:" << INT_MIN << endl; 
    cout << "Maximum Int value:" << INT_MAX << endl; 
    return 0; 
} 

Альтернативным (Non Visual Studio Version ниже):

#include <iostream> 
#include <string> 
#include <limits.h> 
using namespace std; 
int main() 
{ 
    std::cout << "Minimum Int value:" << INT_MIN << endl; 
    std::cout << "Maximum Int value:" << INT_MAX << endl; 
} 

Постоянные имена EG INT_MIN и INT_MAX могут быть найденные на веб-сайте ниже, если вы заинтересованы в максимальных значениях и минимальных значениях других типов данных.
http://www.cplusplus.com/reference/climits/

+1

Вопрос не помечен C++. – 2501

+0

@ 2501 .. Хорошая точка. Версия C представлена –

Смежные вопросы