C语言中的头文件timeh中定义了库函数clock(),它返回的是从程序运行开始算起的时间,一时钟周期为单位,timeh还定义了符号:CLOCKS_PER_SEC,即一秒钟的时钟周期。这样就简单了,在头文件中加入#include<timeh>,在程序main()主函数的开头定义long now=0;并给把clock()赋值给now,即now=clock();记录程序开始时的时间,clock()会继续增加,但now已经确定为开始那一时刻clock()的值,在程序结尾,算式clock()-now就是程序执行所需的时间,但是是以时钟周期为单位的,如果想得到以秒为单位的时间只要输出(clock()-now)/CLOCKS_PER_SEC就是了,即在程序结尾添加
printf("%lf",(clock()-now)/CLOCKS_PER_SEC);就可以了。
#include <stdioh>
#include <stdlibh>
#include <conioh>
enum DateType
{
YEAR,
MONTH,
DAY,
HOUR,
MINUTE,
SEC,
MAX,
};
#define DUMMY 0
const char g_apcCnName[MAX]={"年","月","日","时","分","秒"};
int isLeapYear(int iYear)
{
return ((iYear%4==0&&iYear%100!=0)||iYear%400==0);
}
int main()
{
int i;
int aiTime[MAX]={0};
int aiTimeMaxValue[MAX]={9999,12,31,23,59,59};
int aiTimeMinValue[MAX]={1970,1,1,0,0,0,};
int aiMonthMaxDay[]={DUMMY,31,28,31,30,31,30,31,31,30,31,30,31};
for(i=YEAR;i<MAX;++i)
{
printf("请输入%s",g_apcCnName[i]);
scanf("%d",aiTime+i);
if(MONTH==i&&isLeapYear(aiTime[YEAR]))
{
aiMonthMaxDay[2]=29;
}
if(DAY==i)
{
aiTimeMaxValue[DAY]=aiMonthMaxDay[aiTime[MONTH]];
}
if(aiTime[i]>aiTimeMaxValue[i]||aiTime[i]<aiTimeMinValue[i])
{
printf("输入数据不合法,请重新输入\n");
i--;
}
}
aiTime[SEC]++;
for(i=SEC;i>YEAR;i--)
{
if(aiTime[i]>aiTimeMaxValue[i])
{
aiTime[i]=aiTimeMinValue[i];
aiTime[i-1]++;
}
}
printf("\n最后的输出结果是:");
for(i=YEAR;i<MAX;i++)
{
printf("%d%s",aiTime[i],g_apcCnName[i]);
}
getch();
return 0;
}
扩展资料:
用while和do…while循环时,循环变量的初始化的 *** 作应在循环体之前,而for循环一般在语句1中进行的;while循环和for循环都是先判断表达式,后执行循环体,而do…while循环是先执行循环体后判断表达式,也就是说do…while的循环体最少被执行一次。
而while循环和for就可能一次都不执行。另外还要注意的是这三种循环都可以用break语句跳出循环,用continue语句结束本次循环,而goto语句与if构成的循环,是不能用break和 continue语句进行控制的。
顺序结构、分支结构和循环结构并不彼此孤立的,在循环中可以有分支、顺序结构,分支中也可以有循环、顺序结构,其实不管哪种结构,均可广义的把它们看成一个语句。
在实际编程过程中常将这三种结构相互结合以实现各种算法,设计出相应程序,但是要编程的问题较大,编写出的程序就往往很长、结构重复多,造成可读性差,难以理解,解决这个问题的方法是将C程序设计成模块化结构。
以上就是关于怎样用c语言设计计算程序执行的时间全部的内容,包括:怎样用c语言设计计算程序执行的时间、用C语言编写一个程序输出任意时间下一秒的时间、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)