1、者:wuwh *wuwh */*/*编制时间:编制时间:20022002年年年年9 9月月月月2020日日日日 */*/*主要功能:找出最重的羊主要功能:找出最重的羊 */*/*#include#include /预编译命令预编译命令预编译命令预编译命令#include#include /预编译命令预编译命令预编译命令预编译命令void main()void main()/主函数主函数主函数主函数 float sheep10;float sheep10;/数组,有数组,有数组,有数组,有1010个浮点类型元素,个浮点类型元素,个浮点类型元素,个浮点类型元素,/用于存用于存用于存用于存1010只
2、羊每一只的重量只羊每一只的重量只羊每一只的重量只羊每一只的重量 memsetmemset(sheep,0,(sheep,0,sizeofsizeof(sheep);/(sheep);/初始化数组元素为初始化数组元素为初始化数组元素为初始化数组元素为0 0float float bigsheepbigsheep=0.0f;=0.0f;/浮点类型变量,存放最肥羊的重量浮点类型变量,存放最肥羊的重量浮点类型变量,存放最肥羊的重量浮点类型变量,存放最肥羊的重量intint i=0,i=0,bigsheepNobigsheepNo=0;=0;/整型变量,整型变量,整型变量,整型变量,i i 用于计数循环
3、,用于计数循环,用于计数循环,用于计数循环,/bigsheepNobigsheepNo用于记录最肥羊的号用于记录最肥羊的号用于记录最肥羊的号用于记录最肥羊的号 3#include float sheep10;memset(sheep,0,sizeof(sheep);4for(i=0;i10;i=i+1)for(i=0;i=i+1)/计数循环计数循环计数循环计数循环 /循环,开始循环,开始循环,开始循环,开始coutcout请输入羊的重量请输入羊的重量请输入羊的重量请输入羊的重量sheep i =;/sheep i sheepi;sheepi;/输入第输入第输入第输入第i i只羊的重量只羊的重量
4、只羊的重量只羊的重量if(if(bigsheepbigsheep sheepi)sheepi)/如果第如果第如果第如果第i i只羊比当前最肥羊大只羊比当前最肥羊大只羊比当前最肥羊大只羊比当前最肥羊大 bigsheepbigsheep=sheepi;=sheepi;/让第让第让第让第i i只羊为当前最肥羊只羊为当前最肥羊只羊为当前最肥羊只羊为当前最肥羊bigsheepNobigsheepNo=i;=i;/纪录第纪录第纪录第纪录第i i只羊的编号只羊的编号只羊的编号只羊的编号 /循环结束循环结束循环结束循环结束/输出最肥羊的重量输出最肥羊的重量输出最肥羊的重量输出最肥羊的重量 coutcout 最
5、肥羊的重量为最肥羊的重量为最肥羊的重量为最肥羊的重量为bigsheepbigsheependlendl;/输出该羊的编号输出该羊的编号输出该羊的编号输出该羊的编号 coutcout 最肥羊的编号为最肥羊的编号为最肥羊的编号为最肥羊的编号为bigsheepNobigsheepNoendlendl;5n nfor(i=0;i 10;i=i+1 )for(i=0;i=i+1 )n n n ncoutcout“请输入羊的重量请输入羊的重量请输入羊的重量请输入羊的重量 sheepsheep n n i “i “sheepisheepi;n nif(if(bigsheepbigsheep sheepish
6、eepi)n n n nbigsheepbigsheep=sheepisheepi;n nbigsheepNobigsheepNo=i;n n n n 6程程 序序 框框 图图7 类型说明符类型说明符数组名数组名 常量表达式常量表达式 例:例:intint a20011000;a20011000;说明说明1.1.数组名的第一个字符应为英文字母;数组名的第一个字符应为英文字母;2.2.用用用用方括号方括号方括号方括号将将将将常量表达式常量表达式常量表达式常量表达式括起;括起;3.3.常量表达式定义了数组元素的个数;常量表达式定义了数组元素的个数;数组的定义数组的定义84.4.数组下标从数组下标从
7、数组下标从数组下标从 0 0 开始。如果定义开始。如果定义 5 5 个元素,是从第个元素,是从第个元素,是从第个元素,是从第 0 0 个元素至第个元素至第个元素至第个元素至第 4 4 个元素;个元素;例如例如例如例如int a5 定义了定义了5个数组元素如下个数组元素如下:a0,a1,a2,a3,a4这是这是这是这是 5 5 个带下标的变量,这个带下标的变量,这个带下标的变量,这个带下标的变量,这5 5个变量的类型是相同的个变量的类型是相同的个变量的类型是相同的个变量的类型是相同的 95.5.常量表达式中不允许包含变量常量表达式中不允许包含变量n例如例如int n;n n=5;nint an;
8、不合法!n因为因为 n 是变量,不是常量是变量,不是常量10n n#define N 100n n#define M 200n nint a N ;n nlong b N+M ;n ndouble g M+6 ;n n以上定义是合法的以上定义是合法的11第一种方法第一种方法 直接声明时初始化直接声明时初始化例如例如例如例如int a5=3,5,4,1,2;a0=3;a1=5;a2=4;a3=1;a4=2;数组初始化数组初始化12第二种方法第二种方法 使用使用 memset 函数函数格式为格式为memset(数组名数组名,初始化值初始化值,sizeof(数组名数组名)举例:举例:含义是将名为含义
9、是将名为 sheep 的数组中的全部元素均初的数组中的全部元素均初始化为始化为 0。更深一层是说让系统为。更深一层是说让系统为 sheep10 所所分配的内存单元从分配的内存单元从 sheep0 为标志的地址单元为标志的地址单元到该数组的全部地址单元都赋以到该数组的全部地址单元都赋以 0。调用此库调用此库函数需要加入头文件函数需要加入头文件 。131.1.1.1.#include include void main()void main()intint a4;a4;/声明项声明项声明项声明项coutcout a0 a0 endlendl;coutcout a1 a1 endlendl;cout
10、cout a2 a2 endlendl;coutcout a3 a3 endlendl;2.2.2.2.其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为intint a4=0,1,2,3;a4=0,1,2,3;请自己上机做请自己上机做6个实验个实验143.3.3.3.其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为intint a4=3,8;a4=3,8;4.4.4.4.其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为intint a4=2,4,6,8,10;a4=2,4,6
11、,8,10;5.5.5.5.其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为intint a4=2,4,6,d;a4=2,4,6,d;6.6.6.6.其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为intint n=4;n=4;intint an=0,1,2,3;an=0,1,2,3;15讨讨 论论 问问 题题使用筛法求使用筛法求100100以内的所有素数以内的所有素数16思路思路1.1.想象将想象将想象将想象将100100100100个数看作沙子和小石头子,让小石头子权个数看作沙子和小石头子,让小石头子权个数看作
12、沙子和小石头子,让小石头子权个数看作沙子和小石头子,让小石头子权称素数;让沙子当作非素数。弄一个筛子,只要将称素数;弄一个筛子,只要将沙子筛走,剩下的就是素数了。沙子筛走,剩下的就是素数了。2.2.非素数一定是非素数一定是非素数一定是非素数一定是 2 2 2 2、3 3 3 3、4 4 4 4 的倍数。的倍数。3.3.使用数组,让下标就是使用数组,让下标就是使用数组,让下标就是使用数组,让下标就是100100100100以内的数,让数组元素的以内的数,让数组元素的以内的数,让数组元素的以内的数,让数组元素的值作为筛去与否的标志。比如筛去以后让元素值为值作为筛去与否的标志。比如筛去以后让元素值为
13、1 1 1 1。17方法的依据:方法的依据:1 1 1 1至至至至100100100100这些自然数可以分为三类:这些自然数可以分为三类:单位数:仅有一个数单位数:仅有一个数1 1 1 1。素数:是这样一个数,它大于是这样一个数,它大于是这样一个数,它大于是这样一个数,它大于1 1 1 1,且只有,且只有,且只有,且只有1 1 1 1和它自身这样两和它自身这样两和它自身这样两和它自身这样两个正因数。个正因数。合数:除了除了除了除了1 1 1 1和自身以外,还有其他正因数。和自身以外,还有其他正因数。1 1 1 1 不是素数,除不是素数,除不是素数,除不是素数,除 1 1 1 1 以外的自然数,当然只有素数与合数。以外的自然数,当然只有素数与合数。筛法实际上是筛去合数,留下素数。18n n为了提高筛法效率,注意到:为了提高筛法效率,注意到:n n令令令令 n n 为合数(这里是为合数(这里是为合数(这里是为合数(这里是100100),),),),n n c c 为为为为 n
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1