- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.1 数组的定义、引用和初始化 一维数组 用1个下标表示数组元素 二维数组 用2个下标表示数组元素 三维数组 用3个下标表示数组元素 声明一个有8个元素的一维数组: #define N 8 int a[N]; 声明一个有2行4列的二维数组: #define M 2 #define N 4 int b[M][N]; 声明一个有2*2*2的三维数组: #define M 2 #define N 2 #define L 2 int b[L][M][N]; 7.1 数组的定义、引用和初始化 数组在内存中的物理存储结构 按行线性存储 7.1 数组的定义、引用和初始化 访问(引用)数组中的元素 for (i=0; i2; i++) //行下标值变化 { for (j=0; j4; j++) //列下标值变化 { scanf(%d, a[i][j]); } } for (i=0; i2; i++) //行下标值变化 { for (j=0; j4; j++) //列下标值变化 { printf(%4d, a[i][j]); } printf(\n); //输出换行 } 未初始化的数组元素值是什么? 静态数组和全局数组自动初始化为0值,否则,是随机数 一维数组的初始化 int a[5] = {62, 74, 56, 88, 90}; int a[5] = {62, 74}; int a[] = {62, 74, 56, 88, 90}; 更高效的数组初始化方法 memset(a, 0, sizeof(a)); memcpy(a, b, sizeof(a)); 用sizeof(a)来获得数组a所占的内存字节数 #include string.h int a[5] = {62, 74, 0, 0, 0}; 7.1 数组的定义、引用和初始化 参数的传递方式有两种: 按值传递(Pass-by-value) 按引用传递(Pass-by-reference) 7.2.1传值调用与模拟传引用调用 7.2.2一维数组的参数传递——以筛法求素数为例 【例7.1】请编写程序,用筛法计算并输出1~n之间的所有素数之和。 void SiftPrime(int a[], int n) { for (int i=2; i=n; ++i) { a[i] = i; } for (int i=2; i=sqrt(n); ++i) { for (int j=i+1; j=n; ++j) { if (a[i]!=0 a[j]!=0 a[j]%a[i]==0) { a[j] = 0; } } } } 7.2.2一维数组的参数传递——以筛法求素数为例 【例7.1】请编写程序,用筛法计算并输出1~n之间的所有素数之和。 #include stdio.h #include math.h #define N 100 void SiftPrime(int a[], int n); int SumofPrime(int n); int main(void) { int n; printf(Input n:); scanf(%d, n); printf(sum=%d\n, SumofPrime(n)); return 0; } void SiftPrime(int a[], int n) { for (int i=2; i=n; ++i) { a[i] = i; } for (int i=2; i=sqrt(n); ++i) { for (int j=i+1; j=n; ++j) { if (a[i]!=0 a[j]!=0 a[j]%a[i]==0) { a[j] = 0; } } } } int SumofPrime(int n) { int m, sum = 0; int a[N+1]; SiftPrime(a, n); for (sum=0, m=2; m=n; ++m) {
您可能关注的文档
- 程序设计基础(C语言)(慕课版) 课件 第1章 程序设计的计算机基础.ppt
- 程序设计基础(C语言)(慕课版) 课件 第1章 程序设计的计算机基础.pptx
- 程序设计基础(C语言)(慕课版) 课件 第2章 基本IO和基本数据类型.ppt
- 程序设计基础(C语言)(慕课版) 课件 第3讲 程序测试和程序调试.ppt
- 程序设计基础(C语言)(慕课版) 课件 第3章 基本运算.ppt
- 程序设计基础(C语言)(慕课版) 课件 第4章 基本控制结构.ppt
- 程序设计基础(C语言)(慕课版) 课件 第5章 函数与模块化编程.ppt
- 程序设计基础(C语言)(慕课版) 课件 第6章 程序设计的问题求解基础.ppt
- 程序设计基础(C语言)(慕课版) 课件 第8章 查找和排序算法.ppt
- 程序设计基础(C语言)(慕课版) 课件 第9章 呼风唤雨的指针.ppt
- 程序设计基础(C语言)(慕课版) 课件 第10章 字符串和文本处理.ppt
- 程序设计基础(C语言)(慕课版) 课件 第11章 用结构封装数据.ppt
- 程序设计基础(C语言)(慕课版) 课件 第12章 结构设计之美.ppt
- 《AutoCAD电气工程制图(含工作页)》课程标准.doc
- AutoCAD电气工程制图(含工作页) 教案 项目二 三相电动机电气图的绘制.doc
- AutoCAD电气工程制图(含工作页) 教案 项目六 建筑电气工程平面图的绘制.doc
- AutoCAD电气工程制图(含工作页) 教案 项目三 控制柜、屏、箱电路图的绘制.doc
- AutoCAD电气工程制图(含工作页) 教案 项目四 工程系统图的绘制.doc
文档评论(0)