C语言求一个程序运行时间

作者&投稿:拱司 (若有异议请与网页底部的电邮联系)
计算C语言程序运行时间(hello world)~

#include "time.h"
#include "stdio.h"

main()
{
double start, finish;

start = clock();//取开始时间

printf("Hello, World!
");

finish = clock();//取结束时间
printf( "%f seconds
",(finish - start) / CLOCKS_PER_SEC);//以秒为单位显示之

}
上面的代码理论上是可以显示printf("Hello, World!
");语句的运行时间的,但我猜实际的显示结果是0,因为printf("Hello, World!
");这个语句的运行时间是可以忽略不计的,加一个次数较多的循环才能看到效果

在程序开始时调用一次time()结束时调用一次time(),两次相减就能获得秒数。
例:
#include
#include
int main()
{
int iStartTime = time(NULL);
int i = 1;
int iEndTime;
while (i > 0)//这里应该放你要运行的程序
{
i++;
}
iEndTime = time(NULL);
printf("%ds elapsed.
",iEndTime-iStartTime);
return 0;
}
但这个方法精度很低,只能精确到秒。要更高的精确度需要调用操作系统的API。如在Windows下,精确到毫秒级:
#include
#include
int main()
{
unsigned uStartTime = GetTickCount();//该函数只有在Win2000及以上的版本才被支持
int i = 1;
unsigned uEndTime;
while (i > 0)
{
i++;
}
uEndTime = GetTickCount();
printf("%ums elapsed.
",uEndTime-uStartTime);
return 0;
}

  C/C++中的计时函数是clock()。

  所以,可以用clock函数来计算的运行一个循环、程序或者处理其它事件到底花了多少时间,具体参考代码如下:

#include “stdio.h”
#include “stdlib.h”
#include “time.h”

int main( void )
{
   long    i = 10000000L;
   clock_t start, finish;
   double  duration;
   /* 测量一个事件持续的时间*/
   printf( "Time to do %ld empty loops is ", i );
   start = clock();
   while( i-- )      ;
   finish = clock();
   duration = (double)(finish - start) / CLOCKS_PER_SEC;
   printf( "%f seconds
", duration );
   system("pause");
}


#include<stdio.h>
#include<time.h>
int q(int n,int m)
{
if((n<1)||(m<1))return 0;
if((n==1)||(m==1))return 1;
if(n<m)return q(n,n);
if(n==m)return q(n,m-1)+1;
return q(n,m-1)+q(n-m,m);
}
int main()
{
int a, b, c;
clock_t tb, te;

printf("the first clock = %d\n", tb=clock()); //打印输出进程运行到此时的挂钟数(近似进程开始)
scanf("%d %d",&a,&b);
c=q(a,b);
printf("%d\n\n",c);
printf("the last clock = %d\n", te=clock()); //打印输出进程运行到此时(快结束而未结束)的挂钟数
printf("%f秒\n", (float)(te-tb)/CLK_TCK); //把挂钟数转换成时间输出

return 0;
}

【说明】clock_t clock(); 函数返回从“开启这个程序进程”到“程序中调用clock() ”时之间的cpu时钟计数单元(clock tick)【这个句话请仔细体会】;另外,clock_t 实为长整型

【错误】在你的代码中,最后一个语句:printf("%lf毫秒",(tb-te)/CLK_TCK); 有误,不是 tb-be ,是 te-tb
【补充】有趣的是,系统计时包括 scanf() 语句等待输入时间,所以你输入快一些或慢一些直接影响到你的第二次周用clock()函数: te = clock(); ,所以 te 这个值取决于你的输入快慢(scanf());如果你把第一个 printf()语句放到 scanf() 语句后面去,则你得到的结果将会是0,因为后面两行代码运行太--快--了,就是楼上这位仁兄所说“程序太小,电脑秒杀了”,自己去试试,体会一下吧,祝你学习愉快!

计算很快,几乎计不出时间来
你可以把a,b的数值输入大一些来测试;或者同一个计算重复1000次或更多次再求平均值

你的时间应该是(te-tb)/CLK_TCK

我用C++做过数据结构 那个单链表还在

和你这样 一样 你留下 你如果 喜欢就要吧
// List.h
#include <fstream>
using namespace std;

typedef int ElemType ;

typedef struct student
{
ElemType n;
struct student *next;
}Student,*SListLink;

可以用GetTickCount()


一个简单的C语言程序,可以正常运行的。
double eavg;int b[5],temp;printf("请输入5个正整数\\n");for(i=0;i<5;i++){ scanf("%d",&b[i]);sum+=b[i];} for(j=0;j<4;j++)for(i=0;i<4-j;i++)if(b[i]

在Linux系统中,如何运行一个C语言程序?
\/a.out就是运行文件了。5、如果想要编译完的文件名不要用a.out文件。就可以在编译时打入.gcc test.c -o test.out然后就可以看见有一个test.out.文件 了。-o后面跟着的编译生成的文件名。6、再运行test.out在终端中输入.\/test.out结果如图。这样在linux系统下编译并运行C语言就完成了。

在计算机上运行一个C语言编写的程序,要经过怎样的处理过程
开发一个C语言程序需要经过的四个步骤:编辑、编译、连接、运行。C语言程序可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码编译、连接成目标二进制文件之后即可运行。1、编辑:输入源程序并保存(。C文件)。2、编译:将源程序翻译成目标文件(。OBJ文件)...

编写一个C语言程序来求解下面一个一元二次方程的实数解:2x平方+5x+3=...
一元二次方程ax^2+bx+c=0 (a≠0)的解有三种情况:①判别式Δ=0时,有两个相等实根。②判别式Δ>0时,有两个不等实根。③判别式Δ<0时,无实数解。源程序如下:C语言程序求解一个一元二次方程 此题的a=2,b=5,c=3:程序运行结果 注意如果a是分数时, c语言输入要转化成小数,例如1...

c语言编程,:求变一个程序,输入一个double型数据,经过运行后可以得到这个...
很简单 我告诉你 把double的存入char 字符数组 然后从后向前找 . 找到 . 再向前一位就是个位了 \/\/\/下面这个方法很节省内存和cpu\/\/\/ 123 个位数为:3。Press any key to continue 123.44 个位数为:3。Press any key to continue include<stdio.h> include "string.h"main(void){ i...

如何用C语言编写一个简单的程序!
打印,输出运行。05 输出的效果就是这样了,一个简单的c语言程序就写好了 特别提示 所有的输入都要在英文半角的情况下输入,不然程序会不能识别,会报错。

...求一个500行C语言程序代码。 可以在VC++6.0上运行的。
while(1){ showmenu();scanf("%d",&m);processmenu(m);} system("PAUSE");return EXIT_SUCCESS;} void processmenu(int m){ switch(m){ case 0:tuichu();break;case 1:add();break;case 2:del();break;case 3:alter();break;case 4:outputall();break;case 5:sortbyage();break...

c语言中,下面程序的运行结果是?
你好 1.程序的运行结果是:1,-2 2.解释每一步的运行过程:include <stdio.h> void main(){ int y, a ;y=2, a=1;while (y--!=-1){ do{ a*=y ;a++ ;} while(y--);} printf("%d,%d\\n",a,y);} 从y=2,a=1开始哈 (首先我们要知道后自减y--型的返回值是y自减前的...

求一个C语言程序:编写程序获取用户输入的三个小写字母的ASCII码以及...
include <stdio.h>int main(){ char a[3]; printf("请连续输入3个小写字母,例如:abc :"); scanf("%[a-z]c",&a); \/\/限制只能输入 a-z printf("%c 的ASCII = %d ,大写 = %c \\n",a[0],a[0],a[0]-('a'-'A')); printf("%c 的ASCII = %d ,大...

求一个C语言程序使输入一个数能显示出计算出它的原码和补码并显示出来...
include<stdio.h> include<stdlib.h> include<math.h> include<conio.h> void convert(int num);void oppose(int n);int a[16];void main(void){ int num,jdz;char ans;while(1){ printf("请输入任意一个十进制整数: ");scanf("%d",&num);printf("\\n");printf("其绝对值为: ");...

沙洋县18684943856: 求C语言程序:如何获得一个程序运行的时间? -
关泊新抗: 在程序的开头引用now()方法得到时间,程序结尾也调用now()方法. 两个时间运算一下,就是这段程序运行的时间.

沙洋县18684943856: c语言 计算程序运行时间 -
关泊新抗: 在原来的程序中加上<time.h>的头文件 然后在需要测试时间的程序段首尾分别加上begin=clock(); end=clock();语句end-begin既是要求的时间

沙洋县18684943856: 怎样用c语言设计计算程序执行的时间? -
关泊新抗: C语言中的头文件time.h中定义了库函数clock(),它返回的是从程序运行开始算起的时间,一时钟周期为单位,time.h还定义了符号:CLOCKS_PER_SEC,即一秒钟的时钟周期.这样就简单了,在头文件中加入#include<time.h>,在程序...

沙洋县18684943856: 怎样知道C语言运行一个程序用了多长时间 -
关泊新抗: 在程序开始时调用一次time()结束时调用一次time(),两次相减就能获得秒数.例:#include <time.h>#include <stdio.h> int main() { int iStartTime = time(NULL); int i = 1; int iEndTime; while (i > 0)//这里应该放你要运行的程序 { i++; } ...

沙洋县18684943856: 在C语言中,怎么测试运行程序所用的时间? -
关泊新抗: 头文件time.hint a=clock();//从这开始计时这放要测试时间的代码int b=clock();//到这结束 int c=b-a;//算出来的单位是毫秒

沙洋县18684943856: 求C语言程序:如何获得一个程序运行的时间? 最好带一段简单的代码 新人学不懂 呵呵 谢谢大家啦 -
关泊新抗: #include <stdlib.h> #include <time.h>#include <stdio.h> void my_subroutine(long n) { // timing a subroutine call: char s[16]; for (long i = 0; i < n; i++) { _itoa(i, s, sizeof(s)); } } int main(int argc, char* argv[]) { long n = 1000000; clock_t start = clock();...

沙洋县18684943856: 那位高手知道C语言中如何查看程序运行时间 -
关泊新抗: 获取程序运行时间: 在 里有函数clock();本身这个函数取得的时间好像是ms,要取得s就 写成clock()/CLOCKS_PER_SEC;但CLOCKS_PER_SEC是在time.h里定义的,如果没这个定义 那只能用clock();取得ms;这个函数的执行不会...

沙洋县18684943856: 那位高手知道C语言中如何查看程序运行时间
关泊新抗: 获取程序运行时间: 在&lt;time.h&gt;里有函数clock();本身这个函数取得的时间好像是ms,要取得s就 写成clock()/CLOCKS_PER_SEC;但CLOCKS_PER_SEC是在time.h里定义的,如果没这个定义 那只能用clock();取得ms;这个函...

沙洋县18684943856: 请问怎样计算出一个C语言程序运行所需具体时间(精确到0.1秒)? -
关泊新抗: 包含头文件 #include <time.h> int t1, t2; 程序开始计算前: t1 = clock(); 程序计算结束后: t2 = clock(); 那么t2 - t1 就是计算所需的时间了,单位就是ms

沙洋县18684943856: c语言 如何求时间 -
关泊新抗: #include int main( void ) { long i = 10000000L; clock_t start, finish; double duration; /* 测量一个事件持续的时间*/ printf( "Time to do %ld empty loops is ", i ); start = clock(); while( i-- ) ; finish = clock(); duration = (double)(finish - start) / CLOCKS_...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网