#include <stdio.h>
#include <time.h>//clock()所属头文件
const int N_qsort=;//快排的数据规模
const int M=,N=;//整点、浮点运算的规模
const int N_pi=;//计算圆周率的运算规模
double s_int,s_float,s_pi,s_sort;
void int_comp(void);//整点运算
void float_comp(void);//浮点运算
void pi_comp(void);//泰勒级数推论式计算圆周率
void Qsort(int a[],int low,int high);//快排算法
void qsort(void);//调用快排算法的函数
void panduan();
void PAUSE(); int main(){ printf("------\n性能测试开始\n");
int_comp();//整点运算
float_comp();//浮点运算
pi_comp();//泰勒级数推论式计算圆周率
qsort();//快速排序
printf("------\n测试结束\n");
printf("整点运算得分:%lf\n",s_int);
printf("泰勒级数推论式计算圆周率运算得分:%lf\n",s_pi);
printf("排序运算得分:%lf\n",s_sort);
printf("总得分:%lf\n",s_int+s_float+s_pi+s_sort);
panduan();
PAUSE();
} void int_comp(void){//整点加法
printf("整点运算测试中(运算次数为:%lf)\n",(double)M*N);
clock_t start,end;
int i,j;
start=clock();
for(i=;i<M;i++)
for(j=;j<N;j++);
end=clock();
double duration=(double)(end-start)/CLOCKS_PER_SEC;
double score=(M*N)/duration;
/*注:score本身即为运算速度,数量级一般在亿,为方便起见,本程序的分数均采用运算速度除以一万后的结果!除特殊说明,后面类同!*/
s_int=score/;
//printf("整点运算测试完毕!分数:%lf\n",s_int);
} void float_comp(void){//浮点加法
printf("浮点运算测试中(运算次数为:%lf)\n",(double)M*N);
clock_t start,end;
float i,j;
start=clock();
for(i=;i<M;i++)
for(j=;j<N;j++);
end=clock();
double duration=(double)(end-start)/CLOCKS_PER_SEC;
double score=(M*N)/duration;
s_float=score/;
//printf("浮点运算测试完毕!分数:%lf\n",s_float);
} void pi_comp(void){
printf("泰勒级数推论式计算圆周率中(运算次数为:%d)\n",N_pi);
int m,i=;
double s=;
clock_t start,end;
start=clock();
for(m=;m<N_pi;m+=){
s+=i*(1.0/m);
i=-i;
}
end=clock();
double duration=(double)(end-start)/CLOCKS_PER_SEC;
double score=N_pi/duration;
//下面一行可输出计算出来的圆周率
printf("pi=%lf\n",*s);
s_pi=score/;
//printf("泰勒级数推论式计算圆周率完毕!分数:%lf\n",s_pi);
}
void Qsort(int a[],int low,int high){//快排算法
if(low>=high) return;
int first=low;
int last=high;
int key=a[first];
while(first<last){
while(first<last&&a[last]>=key) --last;
a[first]=a[last];
while(first<last&&a[first]<=key) ++first;
a[last]=a[first];
}
a[first]=key;
Qsort(a,low,first-);
Qsort(a,first+,high);
}
void qsort(void){//调用快排算法的函数
int a[N_qsort],i;
for(i=N_qsort;i>;i--) a[N_qsort-]=i;
printf("排序运算中(对%d个数进行快速排序)\n",N_qsort);//采用最坏时间方案
clock_t start,end;
start=clock();
Qsort(a,,N_qsort-);
end=clock();
double duration=(double)(end-start)/CLOCKS_PER_SEC;
double score=(N_qsort*N_qsort)/duration;
s_sort=score/;
//printf("排序运算测试完毕!分数:%lf\n",s_sort);
}
void panduan(){
float i=s_int+s_float+s_pi+s_sort;
printf("根据分数,授予您的爱机<");
if (i>&&i<){
printf("渣渣");
}
else if (i>&&i<){
printf("低端");
}
else if (i>&&i<){
printf("中端");
}
else if (i>&&i<){
printf("高端");
}
else if (i>&&i<){
printf("超高端");
}
else if (i>){
printf("机皇");
}
printf(">称号\n");
}
void PAUSE(){
clean_stdin();
}

纯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. remote link Centos6.6 Horrible Slow

    客户端win7 , 本地直连,secureCRT连接Centos6.6 速度巨慢,FTP tool almost cannot link in. 即使用cmd ftp 也是反应30s以上.

  2. Hive0.13.1介绍及安装部署

    一.简介 hive由Facebook开源用于解决海量结构化日志的数据统计.hive是基于Hadoop的一个数据仓库工具,是基于Hadoop之上的,文件是存储在HDFS上的,底层运行的是MR程序.hiv ...

  3. 《LeetBook》LeetCode题解(2):Add Two Numbers [M]

    我现在在做一个叫<leetbook>的免费开源书项目,力求提供最易懂的中文思路,目前把解题思路都同步更新到gitbook上了,需要的同学可以去看看 书的地址:https://hk029.g ...

  4. ECharts概念学习系列之ECharts官网教程之在 webpack 中使用 ECharts(图文详解)

    不多说,直接上干货! 官网 http://echarts.baidu.com/tutorial.html#%E5%9C%A8%20webpack%20%E4%B8%AD%E4%BD%BF%E7%94% ...

  5. 使用EditPlus编辑Linux上的文本文件

    在Linux上我们都使用vim 或者vi命令对文件进行编辑,但是我们习惯的一般都是windows系统, 那么怎么才能像在windows上一样编辑我们Linux上的文件呢?下面我们就来看看如何使用 wi ...

  6. Java PrepareStatement

    1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程2.使用 Statement 对象.在对数据库只执行一次性存取的时侯,用 Statement 对象 ...

  7. 如何阅读复杂的C类型声明

    阅读复杂的C类型声明,通常采用右左法则,也就是Clockwise/Spiral Rule (顺时针/螺旋法则). 本文将首先介绍工具(cdecl)(个人比较偏好使用工具提高学习和工作效率),然后中英文 ...

  8. vim入门之配色方案(colorscheme)设置

    系统版本:ubuntu 16.04 LTS 刚开始用vim的时候,大家可能会觉得默认的语法高亮的颜色不合心意,不过对于vim来说,这并不是一个问题.其实vim的配色方案是可以更改的,既可以选择系统自带 ...

  9. 把IP字符串转换为IPv4标准格式

    把IP字符串转换为IPv4标准格式,如一个IP为127.0.0.1转为127.000.000.001格式? 即是说“点”分隔的数据不够三位数字长度,转换为三位数字长度. Insus.NET有尝试写了一 ...

  10. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...