第三章程序3-1、3-2
来源:互联网 发布:动漫人物的发型知乎 编辑:程序博客网 时间:2024/05/16 15:36
#include <stdio.h>int lg(int);main(){ int i,N; for(i=1,N=10;i<=6;i++,N*=10) printf("%7d %2d %9d\n",N,lg(N),N*lg(N));}int lg(int N){ int i; for(i=0;N>0;i++,N/=2); return i;}
3-2:该程序计算整数数列x1,x2……,xN的平均值μ和标注偏差σ。这个数列由库函数rand生成,平均值μ和标准偏差σ的数学定义如下:
#include <math.h>#include <stdlib.h>#include <stdio.h>typedef int Number;Number randNum(){return rand();}main(int argc,char *argv[]){ int i,N=atoi(argv[1]); float m1=0.0,m2=0.0; Number x; for(i=0;i<N;i++) { x=randNum(); m1+=((float)x)/N; m2+=((float)x*x)/N; } printf(" Average:%f\n",m1); printf("Std.deviation:%f\n",sqrt(m2-m1*m1));}
让程序3-2能作用于其他数值类型(比如float,而不是int),最简单的办法是复制该文件,再将typedef修改成:
typedef float Number
同时将函数randNum修改成:
return 1.0*rand()/RAND_MAX;
(他将返回0到1之间的随机浮点数)
在C中另一种途径是把typedef和randNum放到一个单独的头文件中(假设为Num.h),在3-2的代码中用下面的指令替换他们:
*include "Num.h"
接着,我们就可以用不同的typedef和randNum编写第二个头文件。而且,改名其中的一个文件或其他Num.h,将任何一个应用到程序3-2的主程序中,不需要对他进行其他的修改。
第三种可选方案,这是关键工程实践值得推荐的方法,也就是将程序分解成3个文件:
- 第三章程序3-1、3-2
- 第 2 章程序的版式 索引
- 第2章程序的基本结构
- 深入理解计算机系统-第3章程序的机器表示(一)
- C Primer Plus 第十章程序清单……2015.5.3
- 第七章程序代码
- apue 第七章程序环境
- 《C语言点滴》读书笔记(1)第1章程序猿&&程序媛(关键词:)
- UNIX环境高级编程中的11章程序11-2编译问题---undefined reference to `pthread_create'
- 《Flask Web开发》读书笔记(2)第2章程序的基本结构(关键词:Web开发/Flask)
- 深入Python(Dive Into Python)第五章程序解析
- building web applications with erlang第4章程序问题
- C Primer Plus 第五版 前四章程序清单
- 第五章程序i 调试和剖析详细流程
- <21天实战caffe>第8章程序编译问题
- 视觉SLAM十四讲 第六章程序出错(转载)
- 财务章程
- 项目章程
- Eclipse常用快捷键汇总
- URLRewrite实现伪静态 url重写
- windows phone开发学习--ProgressOverlay等待提醒
- 关于爱情
- Oracle 常见的33个等待事件 .
- 第三章程序3-1、3-2
- 获得指定元素下指定元素节点数量的函数方法(全功能版)
- 对sqlsever数据库的操作流程
- ASP.NET清除页面缓存
- hdu1036Gangsters-dp
- Android 图片处理特效
- android项目R.java没有的时候。你懂的
- 简单 却爱
- 东方程序员怎么看西方程序员