gpt4 book ai didi

c++ - 引入巨型数字时我的代码崩溃

转载 作者:太空宇宙 更新时间:2023-11-04 13:54:23 25 4
gpt4 key购买 nike

我有下一个代码要求用户输入一个大于 100000000 的数字,然后它要求代码必须在数字中搜索一个数字,最后代码显示该数字在数字上出现了多少次,这似乎很容易,但我有一个限制:

数据类型不能是字符串或字符,这就是我使用 int 的原因,但是当我引入一个真正的大数字(如 100100010000100)时,代码无法正常工作,我该如何解决这个问题,有什么想法吗? ??如果有人能帮我解决这个问题,我将不胜感激

#include <iostream>

using namespace std;

int searchDigit(long int num,int digit);

int main()
{
long int num;
int digit,x;
cout << "Give me the number: " << endl;
cin >> num;
cout << "Digit " << endl;
cin >> digito;
x = searchDigit(num,digit);
cout << "\nThe digit " << digit << " appears " << x << " times" << endl;
return 0;
}

int searchDigit(long int num,int digit)
{
int r,c,p = 0;
for(c = num;c != 0;c = c/10)
{
r = c % 10;
if(r == digit)
p++;
}
return p;
}

最佳答案

请注意,在 searchDigit 中,for 循环中有 c = num。如果 long int 大于 int - 在许多平台上都是如此 - 你将丢失 num 的高位。

如果您启用了更多的编译器警告,这可能会被拾取。很难说得更具体,因为您没有提供有关平台、编译器或使用的标志的信息。

关于c++ - 引入巨型数字时我的代码崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22135699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com