定义的数据类型,如果输入的数字超过了这个范围,程序可能会出现问题,怎么解决 int
时间: 2023-12-13 09:05:38 浏览: 28
如果输入的数字超过了 int 类型的取值范围,可以考虑使用 long long 类型来代替 int 类型。只需要将程序中用到 int 类型的地方全部改为 long long 类型即可。修改后的程序如下所示:
```
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 99
#define MAX_NUMBER 2147483647LL
int main() {
long long nums[MAX_SIZE];
long long count[MAX_NUMBER];
memset(count, 0, sizeof(count));
int n = 0;
while (scanf("%lld", &nums[n]) != EOF) {
count[nums[n]]++;
n++;
}
long long duplicate_count = 0;
for (long long i = 0; i < MAX_NUMBER; i++) {
if (count[i] > 1) {
duplicate_count++;
}
}
printf("%lld\n", duplicate_count);
return 0;
}
```
需要注意的是,long long 类型的取值范围也是有限的,如果输入的数字超过了 long long 类型的取值范围,程序依然可能会出现问题。如果需要处理更大范围的数字,可以考虑使用高精度计算库。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)