计算c中的执行时间

新手上路,请多包涵

我写了一个c++程序,我想知道如何计算执行时间,这样我就不会超过时间限制。

 #include<iostream>

using namespace std;

int main ()
{
    int st[10000],d[10000],p[10000],n,k,km,r,t,ym[10000];
    k=0;
    km=0;
    r=0;
    scanf("%d",&t);
    for(int y=0;y<t;y++)
    {
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
            cin>>st[i] >>d[i] >>p[i];
    }
    for(int i=0;i<n;i++)
    {
            for(int j=i+1;j<n;j++)
            {
                    if((d[i]+st[i])<=st[j])
                    {
                              k=p[i]+p[j];
                    }
                    if(k>km)
                    km=k;
            }
        if(km>r)
        r=km;
    }
    ym[y]=r;
}
    for( int i=0;i<t;i++)
    {
         cout<<ym[i]<<endl;
    }

    //system("pause");
    return 0;
}

这是我的程序,我希望它在 3 秒的时间限制内!怎么做 ?是的,对不起,我的意思是执行时间!

原文由 Hick 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 481
2 个回答

如果你安装了 cygwin,从它的 bash shell,运行你的可执行文件,比如 MyProgram ,使用 time 实用程序,像这样:

 /usr/bin/time ./MyProgram

这将报告您的程序的执行花费了多长时间——输出如下所示:

 real    0m0.792s
user    0m0.046s
sys     0m0.218s

您还可以手动修改您的 C 程序以使用 clock() 库函数对其进行检测,如下所示:

 #include <time.h>
int main(void) {
    clock_t tStart = clock();
    /* Do your stuff here */
    printf("Time taken: %.2fs\n", (double)(clock() - tStart)/CLOCKS_PER_SEC);
    return 0;
}

原文由 Ashutosh Mehra 发布,翻译遵循 CC BY-SA 2.5 许可协议

Ashutosh Mehra 回答的简短版本:

 /* including stuff here */
#include <time.h>
int main(void) {
    clock_t tStart = clock();
    /* stuff here */
    cout<<"Time taken: "<<(double)(clock() - tStart)/CLOCKS_PER_SEC;
    return 0;
}

原文由 Bang1338 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题