次のコードは、codeblocks、gccコンパイラで実行されました。Cプログラムの時間測定は0
#include <sys/time.h>
#include<stdio.h>
int sumN(int n) {
int i,sum;
for(i=0; i<n; i++) {
sum += i;
}
return sum;
}
int main() {
struct timeval stop, start;
int i;
for(i=0; i<10000;i+=100)
{
gettimeofday(&start, NULL);
sumN(i);
gettimeofday(&stop, NULL);
printf("%d : %lu\n",i, stop.tv_usec - start.tv_usec);
}
return 0;
}
と出力されます。 gettimeofday関数に問題はありますか?または、出力は正しいですか?関数の複数の入力サイズと関数実行に要した時間に基づいてグラフをプロットする必要もあります。返される値は一切使用しておりませんので、
、' sum'が初期化されないので、関数はランダムな値を返します。ループの前に 'sum = 0;'を追加してください。 –