__aclown__ 2013-11-04 13:09 采纳率: 50%
浏览 2162
已采纳

请大神帮我看看这个计时程序,为什么第一个时间可以正确输出,但第二个时间却不能?

#include
#include
void main ()

{
clock_t start1,finish1,start2,finish2;
double a,b;
int i,j,k,n,m,p,q;
int sum1=0,sum2=0;
scanf("%d",&n);

 for (k=1;k<=n;k*=2)
     {
      for (j=1;j<=n;j++)
         sum1++;
      for(j=1;j<=k;j++)
         sum2++;
     }
 start1=clock();
 for(k=1;k<=n;k*=2)
      for (j=1;j<=n;j++)
 finish1=clock();
 a=(double)(finish1 - start1) / CLOCKS_PER_SEC;

 start2=clock();
 for(k=1;k<=n;k*=2)
     for(j=1;j<=k;j++)
 finish2=(double)clock() / CLOCKS_PER_SEC;

printf("sum1等于:%d\n sum2等于;%d\n sum1所用时间为;%lf\n sum2所用时间为;%lf\n",sum1,sum2,a,b);
system("pause");
}

  • 写回答

1条回答 默认 最新

  • __aclown__ 2013-11-04 13:18
    关注

    后面程序应该是
    finish2=clock();
    b=(double)(finish2-start2)/ CLOCKS_PER_SEC;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?