C++中INT_MAX,INT_MIN数值大小

本文详细介绍了C/C++中INT数据类型的存储大小、取值范围及其在编程中的应用限制。阐述了INT_MAX和INT_MIN的具体数值,以及当数值超出此范围时,如何使用长整型long long来避免溢出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

int占4字节32位,根据二进制编码的规则,
INT_MAX = 2^31-1=2147483647
INT_MIN= -2^31=-2147483648

C/C++中,所有超过该限值的数,都会出现溢出,出现warning,但是并不会出现error。如果想表示的整数超过了该限值,可以使用长整型long long 占8字节64位。

在不使用 `INT_MAX` 和 `INT_MIN` 的情况下,可以通过初始化最大值和最小值为数组的第一个元素,然后从第二个元素开始逐个比较,更新最大值和最小值及其对应的位置。这种方法适用于所有非空数组,并且可以避免使用系统定义的极值常量。 ### 示例代码 以下是一个完整的 C++ 实现,用于找出学号最大和最小的同学的位置: ```cpp #include <bits/stdc++.h> using namespace std; int main() { int n; // 学生总数 int a[110]; // 用于存储每个学生的学号 int imax = 1, imin = 1; // 初始位置分别为第一个同学 cin >> n; // 输入学生总数 for (int i = 1; i <= n; i++) { cin >> a[i]; // 输入第i个学生的学号 } // 初始化最大值和最小值为第一个学生的学号 int mmax = a[1]; int mmin = a[1]; // 从第二个学生开始遍历 for (int i = 2; i <= n; i++) { if (a[i] > mmax) { mmax = a[i]; // 更新最大学号 imax = i; // 更新最大值对应的位置 } if (a[i] < mmin) { mmin = a[i]; // 更新最小学号 imin = i; // 更新最小值对应的位置 } } cout << imax << " " << imin; return 0; } ``` ### 说明 - **初始化最大值和最小值**:将最大值和最小值初始化为数组的第一个元素,而不是使用 `INT_MAX` 或 `INT_MIN`。 - **遍历数组**:从第二个元素开始,逐一比较当前元素与最大值和最小值,更新最大值和最小值及其对应位置。 - **输出结果**:输出学号最大和最小的同学在队列中的位置。 这种方法在逻辑上更直观,并且避免了依赖系统常量[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值