内容如下(参考样书:数据结构上机实验指导p2):
#include
#include
//调用clock_t类型;((float)t)/CLOCKS_PER_SEC)函数;t=clock()函数;
#include
//方法一逐项累加法:
long add1(long n){
//long n 必加,因为如果不加就会出现编译错误,错误原因,为在此函数未定义n这个变量
long i,sum=0;
for(i=1;i
return sum;
}
void AddTime1(long n){
clock_t t;//定义时间变量t
long sum;
t=clock();//计算调用前的时间
sum=add1(n);
t=clock()-t;//用调用后的时间,减去调用前的时间,即可得到add1的时间
printf("方法一逐项累加法用时:\n");
printf("结果:1~%d之和:%ld\n",n,sum);
printf("用时:%lf秒\n",((float)t)/CLOCKS_PER_SEC);
}
//方法二高斯法
long add2(long n){
return n*(n+1)/2;
//返回值为最后结果值,注意,不要盲目return 0;
}
void AddTime2(long n){
clock_t t;
long sum;
t=clock();
sum=add2(n);
t=clock()-t;
printf("方法二高斯法用时:\n");
printf("结果:1~%d之和:%ld\n",n,sum);
printf("用时:%lf秒\n",((float)t)/CLOCKS_PER_SEC);
}
int main(){
int n;
printf("n(大于1000000):");
scanf("%d",&n);
//这里为一个无嵌套的选择,注意!!!
if(n<100000)
return 0;
AddTime1(n);
AddTime2(n);
return 1;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)