7桁の入力(電話番号)を取得して、円周率の桁にあるかどうかを確認する必要がある割り当てがあります。円周率の数字は、提供されたスペースで区切られたテキストファイルに保存されます。かなり簡単に思えます。入力を配列に分割し、円周率の数字を配列に読み込んで、一致するものが見つかったかどうかを確認します。簡単に言えば、私はプログラムを満足のいくように機能させました。円周率の桁数が10、100の倍数など、最大100万桁のテキストドキュメントが提供されました。私のプログラムは最大100,000桁で動作します。しかし、何らかの理由で、100万桁のファイルでは、一般的なWindowsエラーでクラッシュします。クラッシュする理由についての情報がなく、エラーメッセージも表示されません(一般的な「問題が原因でこのプログラムが動作を停止しました」というメッセージを除く)。
割り当て状態の制限に注意して、cin、cout、およびファイルストリームオブジェクト以外のオブジェクト指向コードを使用することはできません(この制限は、まだクラスに参加しておらず、知らないうちに関数を使用することを望まないためです。それらがどのように機能するか)。
とにかく、私はプログラムがクラッシュする理由についての洞察を探しています。私はそれらを必要とするすべての変数(カウンターと関数の戻り値を含む)に長いintを使用しています。これは、約20億に達する可能性があり、ここでは100万を超える数であってはならないためです。
助けてくれてありがとう。私はここ数時間ここにいましたが、成功しませんでした。
const long int numberOfDigits = 1000000;
int digitsOfPi[numberOfDigits];