/*从文件中读取数据*/
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
double count(void);
int main(void)
{
double t;
/*记录函数运行时间,以秒为单位*/
t=count();
printf("%f",t);
return 0;
}
double count(void)
{
clock_t start,stop;
/*clock_t是clock()函数返回的变量类型*/
double t;
/*记录函数运行时间,以秒为单位*/
FILE *f; /*定义文件指针,指向num文件*/
int *a,n,i,x,num;/*n为阶数,x为多项式的x,num为多项式的结果*/
f=fopen("D://num.txt","r");/*打开文件*/
if(f==NULL)
{
printf("文件打开失败!\n");exit(0);
}
fscanf(f,"%d %d",&x,&n);
a=(int*)malloc(sizeof(int)*(n+1));/*动态分配内存*/
if(a==NULL)
{
printf("分配内存失败!\n");exit(0);
}
for(i=0;i<=n;i++)
{
fscanf(f,"%d",&a[i]);
}
start=clock();/*开始计时*/
num=a[n];
for(i=n;i>0;i--)
{
num=a[i-1]+x*num;
}
stop=clock();
t=((double)(stop-start))/CLK_TCK;
printf("%d\n",num);
return t;
}
cloc函数
/*从文件中读取数据*/
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
double count(void);
int main(void)
{
double t;
/*记录函数运行时间,以秒为单位*/
t=count();
printf("%f",t);
return 0;
}
double count(void)
{
clock_t start,stop;
/*clock_t是clock()函数返回的变量类型*/
double t;
/*记录函数运行时间,以秒为单位*/
FILE *f; /*定义文件指针,指向num文件*/
int *a,n,i,x,num;/*n为阶数,x为多项式的x,num为多项式的结果*/
f=fopen("D://num.txt","r");/*打开文件*/
if(f==NULL)
{
printf("文件打开失败!\n");exit(0);
}
fscanf(f,"%d %d",&x,&n);
a=(int*)malloc(sizeof(int)*(n+1));/*动态分配内存*/
if(a==NULL)
{
printf("分配内存失败!\n");exit(0);
}
for(i=0;i<=n;i++)
{
fscanf(f,"%d",&a[i]);
}
start=clock();/*开始计时*/
num=a[n];
for(i=n;i>0;i--)
{
num=a[i-1]+x*num;
}
stop=clock();
t=((double)(stop-start))/CLK_TCK;
printf("%d\n",num);
return t;
}
clock()捕程开运行到clock()调时所耗费时间这个时间是clock tick即时钟打点。常数CLK_TCK机时每所走的时钟打点数每个机器的都不一样。c
clock()函数在C语言的time()函数中,可以通过<time.h> 调用。
在数据结构与算法中,clock() 函数可以明了的计算出每个算法运行的时间,直观的来比较算法的优越性。
下面给出多项式乘法的完整代码来实现: