- 1、本文档共65页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PPT-04数据组织筛选和
5 数据组织、筛选与 排序问题的解题思路 数组的概念、定义和初始化 筛法的解题思路 冒泡排序的思路 中秋佳节,有贵客来到草原,主人要从羊群中选一只肥羊宴请宾客,当然要选最重者。这样就要记录每只羊的重量,如果有成千上万只羊,不可能用一般变量来记录。可以用带有下标的变量,也就是这里要讲的数组。 类型说明符 数组名 [ 常量表达式 ] 例: float sheep[10]; int a2001[1000]; 说明 1. 数组名的第一个字符应为英文字母; 2. 用方括号将常量表达式括起; 3. 常量表达式定义了数组元素的个数; 5.常量表达式中不允许包含变量 例如 int n; n = 5; int a[n]; 不合法! 因为 n 是变量,不是常量 #define N 100 //宏定义,N为常数100 #define M 200 //宏定义,M为常数200 int a[ N ] ; //定义有100个元素的整型数组a long b[ N+M ] ; //定义有300个元素的长整型数组b double g[ M+6 ] ; //定义有206个元素的双精度实 //型数组g 以上定义是合法的 #define N 100 为命令行,不是语句,程序在 编译时遇到N 就用100替换。在命令行中定义的符号名N,也被称为符号常量N。 5.2 筛 法 为了提高筛法效率,注意到: 令 n 为合数(这里是100), c 为 n 的最小正因数, 据初等数论,只要找到 c 就可以确认 n 为合数,将其筛去。 do { 循环体语句块; } while ( 表达式 ) do // 直到型循环 { // 循环体,开始 pi = pi + c; // 累加每一项 sum = sum + 1; a = a + 2.0f; // 计算每一项的分母;强制将2.0转换成float型 b = -b; // 分子变正负号 c = b / a; // 计算每一项 } // 循环体结束 while ( fabs(c) 1e-6 ); // 当c的绝对值大于10的-6次方时,继续 // 执行循环体,否则退出 pi = 4.0f * pi; // 得到最终结果;将4.0作为float类型 cout “pi= ” pi endl; // 输出pi值 cout “sum=” sum endl; // 输出总项数 return 0; } do // 直到型循环 { // 循环体,开始 pi = pi + c; // 累加每一项 sum = sum + 1; a = a + 2.0f; // 计算每一项的分母 b = -b; // 分子变正负号 c = b / a; // 计算每一项 } // 循环体结束 while ( fabs(c) 1e-6 ); while( 表达式 ) { 语句块 ( 循环体 ); } 思考 #define N 1 while ( N ) { cout“ welcome to Tsinghua \n“; } 程序运行后会出现什么情况? 思考 #define N 1 while ( N - 1 ) { cout“ welcome to Tsinghua \n“; } 程序运行后会出现什么情况? cout “请输入两个整数,用空格隔开:”; // 提示信息 cin x; // 键盘输入整数 x cin y; // 键盘输入整数 y if ( x y ) // 让 x 表示两者中的 大数 { w = x; x = y; y = w; } z = x; // 将一个大数赋给 z // 当z不能被y整除时,就让z累加x while ( z % y != 0 )
文档评论(0)