求多项式的值以及查看给定程序段内运行的时间:
多项式的基本公式变形可得:
另外还要了解clock()函数:
宏CLOCKS_PER_SEC适用于将计算系统时间类型转换为用户可读的秒时间。
clock_t是long类型,包含在头文件"time.h"中 将long用别名clock_t代替。
代码如下:
#include<stdio.h>
#include <time.h>
clock_t start, stop; //clock_t是long类型,包含在头文件"time.h"中 将long用别名clock_t代替;
double duration; //记录被测程序的运行时间
int time(int n , int a[], int x)
{
int i;
int p = a[n-1];
for(i=n-1; i>0; i--)
p = a[i-1] + p*x;
return p;
}
// 举例:1*2的0次方 + 2*2的1次方+3*2的2次方=17
int main()
{
int n,x,i=0; //n表示多项式的个数
int a[20]; //数组存放多项式的系数
int dura; //用来接收time函数的值
printf("输入多项式的个数:");
scanf("%d",&n);
printf("输入多项式X的值:");
scanf("%d",&x);
printf("输入多项式的系数: \n");
start =clock();//开始计时
while(scanf("%d",&a[i])!=EOF)
i++;
int len = i;
printf("输出存储数的长度: ");
printf("%d\n",len);
for(int i=0; i<len; i++)
printf("%d ", a[i]);
dura = time(len,a,x);
stop = clock();//停止计时
duration = ((double)(stop-start))/CLOCKS_PER_SEC;
//宏CLOCKS_PER_SEC适用于将计算系统时间类型转换为用户可读的秒时间
//单位是秒
printf("\n多项式的值为:%d\n",dura);
printf("给定内的程序运行的时间为: %f秒", duration);
return 0;
}
程序运行结果: