
C身计在线开放课程 维数组 主讲:曾志华
一维数组 在线开放课程 主讲:曾志华

一.一维数组的初始化 C程设计 初始化:在定义数组的同时,给各数组元素赋值 ·inta10]={0,1,2,3,4,5,6,7,8,9}; ·inta101={0,1,2,3,4};相当于inta101={0,1,2,3,4,0,0,0,0,0; ·inta10={0,0,0,0,0,0,0,0,0,0};相当于inta10={0}; 。 inta5]={1,2,3,4,5};可写为inta]={1,2,3,4,5}; 2
2 初始化: 在定义数组的同时,给各数组元素赋值 • int a[10]={0,1,2,3,4,5,6,7,8,9}; • int a[10]={0,1,2,3,4};相当于int a[10]={0,1,2,3,4,0,0,0,0,0}; • int a[10]={0,0,0,0,0,0,0,0,0,0};相当于int a[10]={0}; • int a[5]={1,2,3,4,5};可写为 int a[ ]={1,2,3,4,5}; 一.一维数组的初始化

二.一维数组的输入和输出 CG程设 例如: 内存 float price[4]; pih曲甘同te个缴组中的元素,每个元素的名称仅仅是下标不同, for 付句认用<夺变量婊示不国函数组兵素的下标, { 所以可以用循环结构来实现输入和输出11.1上 c对学特级组脊€卧造的方式来输入利输出price for(i=0;i<=0;i++) 先输出price [0],最后输 printf("%d "priceli]); 出pricel4
例如: 内存 float price[4]; printf(“Enter prices of 4 books\n”); for (i = 0;i <= 3; i++) { scanf(“%f”,&price[i]); } price[0] price[1] price[2] price[3] price 12.34 1002.10 17.5 11.12 二.一维数组的输入和输出 由于同一个数组中的元素,每个元素的名称仅仅是下标不同, 可以用一个变量来表示不同的数组元素的下标, 所以可以用循环结构来实现输入和输出 (对于字符数组有更合适的方式来输入和输出) for(i=0;i<=0; i++) printf("%d ", price[i]); 先输出price [0],最后输 出price[4]

三.程序举例 膏程序设册 举例:用数组来处理,求解Fibonacci数列的前10项。 Fibonacci数列公式:已知:al=a2=1an=am-tan-2(>2) 即:1,1,2,3,5,8,13,21,34.… 解题思路: 用数组处理,每一个数组元素依次为数列中的一个数 依次求出各数并存放在相应的数组元素中 输出数组中的10个元素
三 .程序举例 举例:用数组来处理,求解Fibonacci数列的前10项。 Fibonacci数列公式: 已知: a1=a2=1 an=an-1+an-2 (n>2) 即:1,1,2,3,5,8,13,21,34…… 解题思路: 用数组处理,每一个数组元素依次为数列中的一个数 依次求出各数并存放在相应的数组元素中 输出数组中的10个元素

三.程序举例 1 2 3 13 21 34 55 89 144 233 #include 377 616 987 1597 2584 4181 6765 int main() int i;int f[10]=(1,1}; 定义数组,并部分元素初始化 for(i=2;i<10;it+) f[0=f[i-2]+fi-1]; 通过下标的变化,对数组的元素赋值 for(i=O;i<1O;i++) if(i%5==0)printf("n"); i语句用来控制换行,每行输出5个 printf("%12d",f[i]); 数据
三 .程序举例—求Fibonacci数列 #include int main() { int i; int f[10]={1,1}; for(i=2;i<10;i++) f[i]=f[i-2]+f[i-1]; for(i=0;i<10;i++) { if(i%5==0) printf(“\n”); printf(“%12d”,f[i]); } if语句用来控制换行,每行输出5个 数据。 通过 下标的变化,对数组的元素赋值 定义数组f,并部分元素初始化

三.程序举例 超设计 举例: 用数组来处理,从键盘输入10个整数,求10个整数中的最大值 解题思路: 1)用循环结构从键盘输入10个整数存储到数组num10]中 2)设定一个变量max初始值为数组中的第一个元素num0] 3)将max依次与数组中的元素比较,每次比较后max中存储 大的那个数
三 .程序举例 举例: 用数组来处理,从键盘输入10个整数,求10个整数中的最大值 解题思路: 1)用循环结构从键盘输入10个整数存储到数组num[10]中 2)设定一个变量max 初始值为数组中的第一个元素num[0] 3)将max依次与数组中的元素比较,每次比较后max中存储 大的那个数

三.程序举例一求10个整数的最大值 程疡设计 void main() intnum[10].max,i, 定义数组num,用来存储10个整数 printf("请输入10个数:n"): for(i=0;i<10;i++) 循环结构,对数组的元素赋值 scanf("%d",&num[i]); max=num[0];- 注意:num一定要初始化 for(i=1;i<10;i++) if(max<num[i])max=num[i]; 将max依次与数组中的元素比较 printf("n最大值为:%d",max;}
三 .程序举例—求10个整数的最大值 void main() { int num[10],max,i; printf("请输入10个数:\n"); for(i=0;i<10;i++) scanf("%d",&num[i]); max=num[0]; for(i=1;i<10;i++) { if (max<num[i]) max=num[i]; } printf("\n最大值为:%d",max);} 将max依次与数组中的元素比较 循环结构,对数组的元素赋值 定义数组num, 用来存储10个整数 注意:num一定要初始化

习题 1求10个整数的景大值 #include int main() 输入10个整型数据, int a[10]; 找出其中的景大值并显示出来, int i; 并输出景火数坐在的位置 for(i=6;i<10;i+) scanf("%d",a[i]); int maxj max a[0]; Ente int maxIndex; maxIndex =0; for(i=1;i<=9;i+) if(max〈a[i]) max a[i]; maxIndex =i; printf("%d %d\n",max,maxIndex +1);
1 求10个整数的最大值 输入10个整型数据, 找出其中的最大值并显示出来, 并输出最大数坐在的位置 习题

习题 膏程疡设计 2整数序列中与指定数字相同的数的个数 描述:输出一个整数序列中与指定数字相同的数的个数。 输入:输入包舍三行: 第一行为N,表示整数序到的长度N<=100); 第二行为N个整数,整数之间以一个空格分开; 第三行包含一个整数,为指定的整教m。 输出:输出为N个数中与m相同的数的个数。 样例输入 3 232 2 样创输出
2 整数序列中与指定数字相同的数的个数 描述:输出一个整数序列中与指定数字相同的数的个数。 输入:输入包含三行: 第一行为N,表示整数序列的长度(N <= 100); 第二行为N个整数,整数之间以一个空格分开; 第三行包含一个整数,为指定的整数m。 输出:输出为N个数中与m相同的数的个数。 样例输入 3 2 3 2 2 样例输出 2 习题

#include (程设计 int main() int n; scanf("%d",&n); inta[100]; int count =0; for(int i=0 i<n ii++) scanf("%d",&a[i]); int m; scanf("%d",&m); for(int i=0 ii<n i++) { if(a[i]==m) r count + printf("%d",count);