- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
吴文虎程序设计4
计算机程序设计基础 第四讲 数组 三、数组 中秋佳节,有贵客来到草原,主人要从羊群中选一只肥羊宴请宾客,当然要选最重者。这样就要记录每只羊的重量,如果有成千上万只羊,不可能用一般变量来记录。可以用带有下标的变量,也就是这里要讲的数组。 三、数组 数组的定义 类型说明符 数组名 [ 常量表达式 ] 例: float sheep[10]; int a2001[1000]; 说明 1.数组名的第一个字符应为英文字母; 2.用方括号将常量表达式括起; 3.常量表达式定义了数组元素的个数; * * 问题:哪只羊最重? 我们先看例子:用键盘输入10只羊的重量存放到一个名为sheep的数组中 #include stdio.h void main() // 主函数 { float sheep[10]; // 数组,有10个浮点类型元素, // 用于存10只羊每一只的重量 float max; // 浮点类型变量,存放最肥羊的重量 int i,k; //整型变量,i用于计数循环,k用于记录最肥羊的号 max = 0.0; // 赋初值0 for ( i=0; i10; i=i+1 ) // 计数循环 { // 循环,开始 printf(“请输入羊的重量sheep[%d]=”, i); // 提示用 scanf(“%f”, (sheep[i])); // 输入第i只羊的重量 if ( max sheep[i] ) { max = sheep[i]; // 让第i只羊为当前最肥羊 k=i; // 纪录第i只羊 } } // 循环结束 printf(“max=%f\n”, max); // 输出最肥羊的重量 printf(“number=%d\n”, k);// 输出最肥羊的编号 } 程序框图 三、数组 4.数组下标从0开始。如果定义5个元素,是从第0个元素至第4个元素; 例如 int a[5] 定义了5个数组元素如下: a[0], a[1], a[2], a[3], a[4] 这是5个带下标的变量,这5个变量的类型是相同的 5.常量表达式中不允许包含变量; 例如 int n; n = 5; int a[n]; 不合法! 三、数组 数组初始化 是定义数组完成赋初值的任务 例如 int a[5] = { 3, 5, 4, 1, 2 }; a[0] = 3; a[1] = 5; a[2] = 4; a[3] = 1; a[4] = 2; 1.#include stdio.h void main() { int a[4]; // 声明项 printf(“a[0]=%d; a[1]=%d; a[2]=%d; a[3]=%d\n”, a[0], a[1], a[2], a[3]); } 2.其他不变,改变声明项为 int a[4] = { 0, 1, 2, 3 }; 请自己上机做6个实验 3.其他不变,改变声明项为 int a[4] = { 3, 8 }; 4.其他不变,改变声明项为 int a[4] = { 2, 4, 6, 8, 10 }; 5.其他不变,改变声明项为 int a[4] = { 2, 4, 6, d }; 6.其他不变,改变声明项为 int n=4; int a[n] = { 0, 1, 2, 3 }; 讨论问题:使用筛法求100以内的所有素数 三、数组 思路 1.想象将100个数看作沙子和小石头子,让小石头子权称素数;让沙子当作非素数。弄一个筛子,只要将沙子筛走,剩下的就是素数了。 2.非素数一定是2、3、4 …… 的倍数。 3.使用数组,让下标就是100以内的数,让数组元素的值作为筛去与否的标志。比如筛去以后让元素值为1。 方法的依据: 1至100这些自然数可以分为三类: 单位数:仅有一个数1。 素数: 是这样一个数,它大于1,且只有1和它自身这样两 个正因数。 合数: 除了1和自身以外,还有其他正因数。 1不是素数,除1以外的自然数,当然只有素数与合数。 筛法实际上是筛去合数,留下素数。 为了提高筛选法效率,注意到: 令n为合数(这里是100),c为n的最小正因数,则据初等数论 只要找到c就可以确认n为合数,将其筛去。 程序框图如下: 上述框图很清晰地描述了筛法的思路: 1.第一块是一个计数型的循环语句,功能是将prime数组清零。 prime[c] = 0; c = 2, 3,… ,100 2.第二块是正因数d初始化为 d = 2。 3.第三块是循环筛数。
文档评论(0)