我正在测试以下程序:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int *prefix1(int *,int);
main()
{
int i,*X,n,*A;
srand(time(NULL));
printf("Dose to n: ");
scanf("%d",&n);
X=(int *)malloc(n*sizeof(int));
for(i=0;i<n;i++)
{
X[i]=rand()%100;
}
clock_t begin=clock();
A=prefix1(X,n);
clock_t end=clock();
printf("Time taken:%f",(double)(end-begin)/CLOCKS_PER_SEC);
}
int *prefix1(int *X,int n)
{
int i,j,s,*A;
A=(int *)malloc(n*sizeof(int));
for(i=0;i<n;i++)
{
s=X[0];
for(j=1;j<=i;j++)
s=s+X[j];
A[i]=s;
}
return A;
}
我正在尝试计算prefix1
占用的时间,但是
(double)(end-begin)/CLOCKS_PER_SEC
总是0
。我在begin
内(在end
开始时和prefix1
之前)尝试了return
,variable
,结果仍然相同。
编辑:在非常低的n值时,结果为0但在大约1000+之后它会给出结果