1. #include <stdio.h>
  2. #include <time.h>//clock()所属头文件
  3. const int N_qsort=;//快排的数据规模
  4. const int M=,N=;//整点、浮点运算的规模
  5. const int N_pi=;//计算圆周率的运算规模
  6. double s_int,s_float,s_pi,s_sort;
  7. void int_comp(void);//整点运算
  8. void float_comp(void);//浮点运算
  9. void pi_comp(void);//泰勒级数推论式计算圆周率
  10. void Qsort(int a[],int low,int high);//快排算法
  11. void qsort(void);//调用快排算法的函数
  12. void panduan();
  13. void PAUSE();
  14.  
  15. int main(){
  16.  
  17. printf("------\n性能测试开始\n");
  18. int_comp();//整点运算
  19. float_comp();//浮点运算
  20. pi_comp();//泰勒级数推论式计算圆周率
  21. qsort();//快速排序
  22. printf("------\n测试结束\n");
  23. printf("整点运算得分:%lf\n",s_int);
  24. printf("泰勒级数推论式计算圆周率运算得分:%lf\n",s_pi);
  25. printf("排序运算得分:%lf\n",s_sort);
  26. printf("总得分:%lf\n",s_int+s_float+s_pi+s_sort);
  27. panduan();
  28. PAUSE();
  29. }
  30.  
  31. void int_comp(void){//整点加法
  32. printf("整点运算测试中(运算次数为:%lf)\n",(double)M*N);
  33. clock_t start,end;
  34. int i,j;
  35. start=clock();
  36. for(i=;i<M;i++)
  37. for(j=;j<N;j++);
  38. end=clock();
  39. double duration=(double)(end-start)/CLOCKS_PER_SEC;
  40. double score=(M*N)/duration;
  41. /*注:score本身即为运算速度,数量级一般在亿,为方便起见,本程序的分数均采用运算速度除以一万后的结果!除特殊说明,后面类同!*/
  42. s_int=score/;
  43. //printf("整点运算测试完毕!分数:%lf\n",s_int);
  44. }
  45.  
  46. void float_comp(void){//浮点加法
  47. printf("浮点运算测试中(运算次数为:%lf)\n",(double)M*N);
  48. clock_t start,end;
  49. float i,j;
  50. start=clock();
  51. for(i=;i<M;i++)
  52. for(j=;j<N;j++);
  53. end=clock();
  54. double duration=(double)(end-start)/CLOCKS_PER_SEC;
  55. double score=(M*N)/duration;
  56. s_float=score/;
  57. //printf("浮点运算测试完毕!分数:%lf\n",s_float);
  58. }
  59.  
  60. void pi_comp(void){
  61. printf("泰勒级数推论式计算圆周率中(运算次数为:%d)\n",N_pi);
  62. int m,i=;
  63. double s=;
  64. clock_t start,end;
  65. start=clock();
  66. for(m=;m<N_pi;m+=){
  67. s+=i*(1.0/m);
  68. i=-i;
  69. }
  70. end=clock();
  71. double duration=(double)(end-start)/CLOCKS_PER_SEC;
  72. double score=N_pi/duration;
  73. //下面一行可输出计算出来的圆周率
  74. printf("pi=%lf\n",*s);
  75. s_pi=score/;
  76. //printf("泰勒级数推论式计算圆周率完毕!分数:%lf\n",s_pi);
  77. }
  78. void Qsort(int a[],int low,int high){//快排算法
  79. if(low>=high) return;
  80. int first=low;
  81. int last=high;
  82. int key=a[first];
  83. while(first<last){
  84. while(first<last&&a[last]>=key) --last;
  85. a[first]=a[last];
  86. while(first<last&&a[first]<=key) ++first;
  87. a[last]=a[first];
  88. }
  89. a[first]=key;
  90. Qsort(a,low,first-);
  91. Qsort(a,first+,high);
  92. }
  93. void qsort(void){//调用快排算法的函数
  94. int a[N_qsort],i;
  95. for(i=N_qsort;i>;i--) a[N_qsort-]=i;
  96. printf("排序运算中(对%d个数进行快速排序)\n",N_qsort);//采用最坏时间方案
  97. clock_t start,end;
  98. start=clock();
  99. Qsort(a,,N_qsort-);
  100. end=clock();
  101. double duration=(double)(end-start)/CLOCKS_PER_SEC;
  102. double score=(N_qsort*N_qsort)/duration;
  103. s_sort=score/;
  104. //printf("排序运算测试完毕!分数:%lf\n",s_sort);
  105. }
  106. void panduan(){
  107. float i=s_int+s_float+s_pi+s_sort;
  108. printf("根据分数,授予您的爱机<");
  109. if (i>&&i<){
  110. printf("渣渣");
  111. }
  112. else if (i>&&i<){
  113. printf("低端");
  114. }
  115. else if (i>&&i<){
  116. printf("中端");
  117. }
  118. else if (i>&&i<){
  119. printf("高端");
  120. }
  121. else if (i>&&i<){
  122. printf("超高端");
  123. }
  124. else if (i>){
  125. printf("机皇");
  126. }
  127. printf(">称号\n");
  128. }
  129. void PAUSE(){
  130. clean_stdin();
  131. }

纯C语言跑分(详细注释)的更多相关文章

  1. 纯JavaScript实现俄罗斯方块(详细注释,ES6)

    借鉴了慕课网的课程<基于websocket的火拼俄罗斯(单机版)>虽然改动比较多,但是还是核心部分没有改,加了一些不怎么好听的声音,和看起来并不好看的界面. CSS部分基本是瞎写的,因为对 ...

  2. unixbench性能测试跑分工具

    UnixBench是一个类unix系(Unix,BSD,Linux)统下的性能测试工具,一个开源工具,被广泛用与测试linux系统主机的性能 所谓跑分工具,不仅各项的测试有得分,最后跑完也会有一个综合 ...

  3. 纯CSS实现侧边栏/分栏高度自动相等

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=694 一.为何要分栏高 ...

  4. MFC的PNG贴图按钮类(详细注释)

    MFC的PNG贴图按钮类(详细注释) (转载请注明出处) 作者:梦镜谷雨 萌新第二次写帖子,请多多包涵.末尾附上相应代码(PS公司繁体系统所以部分注释繁体请别介意). 因自带控件不美观,于是网上参考学 ...

  5. LINUX系统下跑分测试脚本:unixbench.sh

    linux 系统跑分测试脚本:     一.下载脚本:        wget http://teddysun.com/wp-content/uploads/unixbench.sh 二.更改权限:  ...

  6. VPS性能综合测试(6):UnixBench跑分工具测试

    测试时间可能会比较长,请耐心等待.最后UnixBench会详细列出各个测试项目的得分情况,以及VPS性能的综合跑分结果 UinxBench 的使用 使用方法如下: Run [ -q | -v ] [- ...

  7. Azure 进阶攻略 | 电脑跑分你会,但虚拟机存储性能跑分的正确姿势你造吗?

    想学生时代,小编最爱做的就是研究电脑硬件,然后给自己.朋友和童鞋装机.装好后呢?当然要第一时间跑分了!各种跑分软件运行一遍,不断优化,不断测试.终于得到一个满意成绩,截图分享到网上显摆一下.当年为啥就 ...

  8. geek青年的状态机,查表,纯C语言实现

    geek青年的状态机,查表,纯C语言实现 1. 问题的提出.抽象 建一,不止是他,不少人跟我讨论过这种问题:怎样才干保证在需求变更.扩充的情况下.程序的主体部分不动呢? 这是一个很深刻和艰难的问题.在 ...

  9. FastDFS是纯C语言实现,只支持Linux,适合以中小文件为载体的在线服务,还可以冗余备份和负载均衡

    一.理论基础 FastDFS比较适合以中小文件为载体的在线服务,比如跟NGINX(APACHE)配合搭建图片服务器. 分布式文件系统FastDFS FastDFS是纯C语言实现,只支持Linux.Fr ...

随机推荐

  1. docker仓库harbor镜像列表获取命令

    2019-03-14 搭建好docker仓库harbor之后,在服务器上获取harbor的所有镜像列表命令 curl -u "harbor账号:密码" -X GET -H &quo ...

  2. OGNL取Map,List,Set的值

    用到的类有: 相应代码: public class Dog { private String name; public Dog(){ } public Dog(String name){ this.n ...

  3. c++ 同步阻塞队列

    参考:<C++11深入应用> 用同步阻塞队列解决生产者消费者问题. 生产者消费者问题: 有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之 ...

  4. Greenplum表定义

    GP中的table和其它关系型数据表是一样的,除了数据被分布在不同的segment以外. 在建表的时候必须申明分布键distribution policy. 建表需定义下面几个方面: 1. 指定列和数 ...

  5. [PY3]——Python的函数

    Python函数总结图 1.调用 1.1 如何调用 1.1.1  函数名(传参) # 函数使用函数名来调用,函数名后紧跟一对小括号,小括号里传入函数定义时要求的参数 add(9,9) #9+9=18 ...

  6. java并发编程(9)内存模型

    JAVA内存模型 在多线程这一系列中,不去探究内存模型的底层 一.什么是内存模型,为什么需要它 在现代多核处理器中,每个处理器都有自己的缓存,定期的与主内存进行协调: 想要确保每个处理器在任意时刻知道 ...

  7. c#尽量使用条件属性(Conditional Attribute)

    至此我们应该对Attribute属性大体了解了.下面来看看条件属性(Conditional Attribute)到底是怎么回事. 1 [Conditional("DEBUG")]  ...

  8. Docker学习之基本概念

    Docker学习之基本概念 作为一个后端noder,不了解docker有点说不过去,这节开始,学习一些docker层面的东西. 什么是docker Docker最初是dotCloud公司创始人Solo ...

  9. Spring中的Bean配置方式

    1.IOC和DI概述 IOC(Inversion of Control):其思想是反转资源获取的方向. 传统的资源查找方式要求组件向容器发起请求查找资源. 作为回应, 容器适时的返回资源. 而应用了 ...

  10. Web运行控制台输出乱码解决总结

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...