我有一个任务,我需要输入一个 7 位数字(电话号码)并检查它是否在 pi 的数字中找到。pi 的数字存储在提供的空格分隔的文本文件中。这似乎相当简单:将输入分解为一个数组,将 pi 的数字读入一个数组,然后检查是否找到匹配项。长话短说,我得到了令我满意的程序。我们提供了文本文档,其中 pi 的数字是 10、100 等的倍数,最多可达 100 万位。我的程序最多可以处理 100,000 位数字。但无论出于何种原因,在 100 万位数的文件中,它都会因一般 Windows 错误而崩溃。我没有关于它为什么崩溃的信息,也没有给出错误消息(除了通用的“问题导致该程序停止工作”消息)。
注意到赋值状态的限制我不能使用任何面向对象的代码,除了 cin、cout 和文件流对象(这个限制是因为我们还没有进入类并且他们不希望我们在不知道的情况下使用函数它们是如何工作的)。
无论如何,我正在寻找有关程序崩溃原因的见解。我在应该需要它们的每个变量(包括计数器和函数返回)上使用长整数,这应该足够了,因为它们可以达到大约 20 亿,并且这里不应该有任何大于一百万的数字。
谢谢你的帮助。在过去的几个小时里,我一直在这样做,但没有成功。
const long int numberOfDigits = 1000000;
int digitsOfPi[numberOfDigits];