c++中计算一段程序执行时间怎么计算出来出来显示是0啊
#include<iostream>#include<time.h>usingnamespacestd;intmain(){clock_tstart,finish;dou...
#include<iostream>
#include<time.h>
using namespace std;
int main(){
clock_t start,finish;
double totaltime;
int i,j,a[12][50],b[12][50];
for(i=0;i<12;i++){
for(j=0;j<50;j++)
b[i][j]=2;
}
start=clock();
for(i=0;i<12;i++){
for(j=0;j<50;j++)
a[i][j]=b[i][j];
}
finish=clock();
totaltime=(double)(finish-start)/CLOCKS_PER_SEC;
cout<<"按照行存储所花费的时间:"<<endl;
cout<<totaltime<<endl;
return 0 ;} 展开
#include<time.h>
using namespace std;
int main(){
clock_t start,finish;
double totaltime;
int i,j,a[12][50],b[12][50];
for(i=0;i<12;i++){
for(j=0;j<50;j++)
b[i][j]=2;
}
start=clock();
for(i=0;i<12;i++){
for(j=0;j<50;j++)
a[i][j]=b[i][j];
}
finish=clock();
totaltime=(double)(finish-start)/CLOCKS_PER_SEC;
cout<<"按照行存储所花费的时间:"<<endl;
cout<<totaltime<<endl;
return 0 ;} 展开
2个回答
展开全部
你要明白,在电脑里面所有的时间实际上是一个个始终周期,你可以理解为,秒针没转够一圈,分针是不会变化的。你上面那点计算,它完全可以在一个时钟周里面完成,而clock这个函数极有可能只能精确到分针的概念上。所以得出的结果肯定一样。
你上面的for没几个计算,无非就赋值跟 ++ 几个操作,建议你把数量级搞到10亿级去测试。然后把结果平均出来。
你上面的for没几个计算,无非就赋值跟 ++ 几个操作,建议你把数量级搞到10亿级去测试。然后把结果平均出来。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为电脑速度太快了呗。。。
更多追问追答
追问
不会吧,再快也至少得有个时间呀,怎么可能是0呢?代码好像没有问题呀
追答
或者说clock函数精度可能不够, clock返回值精度为毫秒级,如果运算时间低于1ms,输出就是0.。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询