计算机程序设计基础 第四讲数组
1 计算机程序设计基础 第四讲 数组
、数组 问题:哪只羊最重? 中秋佳节,有贵客来到草原,主人要从羊 群中选一只肥羊宴请宾客,当然要选最重 者。这样就要记录每只羊的重量,如果有 成千上万只羊,不可能用一般变量来记录 可以用带有下标的变量,也就是这里要 讲的数组
2 三、数组 中秋佳节,有贵客来到草原,主人要从羊 群中选一只肥羊宴请宾客,当然要选最重 者。这样就要记录每只羊的重量,如果有 成千上万只羊,不可能用一般变量来记录 。可以用带有下标的变量,也就是这里要 讲的数组。 问题:哪只羊最重?
我们先看例子:用键盘输入10只羊的重量存放到一个 名为 sheep的数组中 include void main( //主函数 float sheep[10; //数组,有10个浮点类型元素, 用乇存10只羊每一只的重 型变量,存放最肥羊的重 int"i,k;"/整型变量,i用于计数循环,k用于记录最肥羊的 max=0.0: 赋初值0 for(i=0;i<10;i=i+1 计数循环 循环,开始 print“请输入羊的重量she%d=“ 提示用 scan(“%f,&( sheep;输入第只羊的重量 max heep max=sheep]: //让第i只羊为当前最肥羊 //纪录第i只羊 //循环结束 printi“max=%fm”,max);/输出最肥羊的重 printf(“ number=%dlmn”,k);/输出最肥羊的编
3 我们先看例子:用键盘输入10只羊的重量存放到一个 名为sheep的数组中 #include void main() // 主函数 { float sheep[10]; // 数组,有10个浮点类型元素, // 用于存10只羊每一只的重量 float max; // 浮点类型变量,存放最肥羊的重量 int i,k; //整型变量,i用于计数循环,k用于记录最肥羊的号 max = 0.0; // 赋初值0 for ( i=0; i<10; 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);// 输出最肥羊的编号 }
程序框图 max=0.0;将记录最重的羊的重量置0 for(i=0;i<10;i=i+1) 提示输入第i只羊的重量; 键入第i只羊的重量 sheep[i] max< sheeplil 是 否 max=[i]; k=i 存重者,记录第i只。 输出max(最重的羊的重量) 输出k(最重的羊是第k只)
4 程序框图 max = 0.0; 将记录最重的羊的重量置 0 for ( i=0; i<10; i=i+1 ) 提示输入第 i 只羊的重量; 键入第 i 只羊的重量 sheep[i]; max < sheep[i] 是 否 max = sheep[i]; k = i; 存重者,记录第 i 只。 输出 max ( 最重的羊的重量 ) 输出 k ( 最重的羊是第 k 只 )
、数组 数组的定义 类型说明符数组名[常量表达式] 例: float sheep[10] inta2001[1000 说 H日 >1.数组名的第一个字符应为英文字母; >2.用方括号将常量表达式括起; >3.常量表达式定义了数组元素的个数;
5 三、数组 数组的定义 类型说明符 数组名 [ 常量表达式 ] 例: float sheep[10]; int a2001[1000]; 说明 ➢ 1.数组名的第一个字符应为英文字母; ➢ 2.用方括号将常量表达式括起; ➢ 3.常量表达式定义了数组元素的个数;
、数组 4.数组下标从0开始。如果定义5个元素,是从第0个元 素至第4个元素; 下标 3 例如 inta[5]定义了5个数组元素如下: a[0],a[1],a[2],a[3],a[4] 这是5个带下标的变量,这5个变量的类型是相同的 5常量表达式中不允许包含变量; 例如 int n. 5; int aln 不合法!
6 三、数组 ➢ 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]; 不合法! a 下标 0 1 2 3 4
、数组 数组初始化 是定义数组完成赋初值的任务 例如 inta[5]={3,5,4,1,2}; 3 5 2 下标0 3 4 a[0]=3;a[1]=5;a[2]=4; a[3]=1;a[4]=2;
7 三、数组 数组初始化 是定义数组完成赋初值的任务 例如 int a[5] = { 3, 5, 4, 1, 2 }; a[0] = 3; a[1] = 5; a[2] = 4; a[3] = 1; a[4] = 2; a 3 5 4 1 2 下标 0 1 2 3 4
请自己上机做6个实验 >1 #include void maino int a 4; //声明项 printf(a=%od; a[1=%d; a2=%d alB3=%dn”,al0,a1l,a|2,a|3]); 2.其他不变,改变声明项为 inta4={0,1,2,3};
8 ➢ 1.#include 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其他不变,改变声明项为 inta4={3,8}: 4.其他不变,改变声明项为 inta4={2,4,6,8,10} >5.其他不变,改变声明项为 inta4={2,4,6,d} >6.其他不变,改变声明项为 int n=4 inta[m={0,1,2,3}
9 ➢ 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。 区×0001|0 9910100
10 讨论问题:使用筛法求100以内的所有素数 三、数组 思路 ➢ 1.想象将100个数看作有沙子和小石头子,让小石头子 权称素数;让沙子当作非素数。弄一个筛子,只要将 沙子筛走,剩下的就是素数了。 ➢ 2.非素数一定是2、3、4 …… 的倍数。 ➢ 3.使用数组,让下标就是100以内的数,让数组元素的 值作为筛去与否的标志。比如筛去以后让元素值为1。 0 1 2 3 4 5 6 7 99 100 0 0 1 0 1 0 … 1 1