私は C++ を初めて使用し、この単純な問題で苦労しています。次のコードは、奇妙な動作を示します。一連の数字をテキスト ファイルに出力して、所要時間を計ろうとしています。より小さい n (< 5000) の場合、コードは実行されますが、作成されるテキスト ファイルはぎこちなくなります。n > 10000 の場合、プログラムは「セグメンテーション違反 (コア ダンプ)」というエラーでクラッシュします。
これが私のコード全体です。
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
double listN(int n)
{
clock_t start = clock();
ofstream resultsfile;
resultsfile.open("Number.txt");
for (int i = 0; i < n; i++)
{
resultsfile << i + "\n";
}
resultsfile.close();
return (1000 * (clock() - start)/(double) CLOCKS_PER_SEC);
}
int main()
{
const int NUM_RUNS = 20;
double time = 0;
int n;
cout << "Enter the value n:";
cin >> n;
for (int i = 0; i < NUM_RUNS; i++)
{
time += listN(n);
}
cout << time / NUM_RUNS <<endl;
return 0;
}
誰かが問題について考えを持っていますか?