例75求某数列的前20项。该数列的特点: f1=0(n=1) f2=1(n=2) f=fn-+fn-(n is odd) fn= fn-j-fn-(n is even) 分析 数据结构:该数列中的数据均为整型,可用整型的 维数组来保存 算法: s1:从第三项开始,每一项都是前两项的和或差,可用 循环实现:每循环一次计算出一项。求出前20项,分 别存入数组中相应位置。 s2输出数组中的每一个元素,用循环实现
#include <math.h> maino i int 121,k; ill=0;m2|=1; for(k=3;k<=20;k+=2) ifk=fk-1+fk-2; f(k+l=abs(f]-fk-1D:3 printf("In number list: In"); for(k=l;k<=20;k++) printf(%o10d",fkD if(k%6=0) printf("lm");/控制每行输出6个数*
维数组的初始化 维数组的初始化:定义数组时可以给部分或全 部数组元素赋初值,即数组的初始化。 数组元素的初值依次放在一对花括号内。 (1)只给部分元素赋初值。 如:intx20={1,2};只给数组元素x0,x赋 初值。 (2)对全部数组元素赋初值,数组长度可以省 略,由初值的个数决定。如: int到=10,3,2,⊥0,8,1
一维数组的初始化
7.2二维数组 用于描述类似矩阵、表之类的数据结构 ■特点:1)所有数据同类型,并且是由个数相等的几组数据组 成。 2)每组数据表示一个完整的含义,可看作是一个整体。 比如,2*3的矩阵,共有6个数据,分成两组,每组3个数据, 表示一行。可定义数组: int bb[2l 又如,某班30人,期末考4门课,他们的成绩都是们oa型,共 有120个成绩,分成30组,每组4个,即表示某一个人的成绩; 或分成4组,每组30个,即表示某一门课的成绩。 如定义数组: float scorel30l4:可表示30人的成绩,每人4门课。 oat sc4l30可表示4门课,每门可有30人的成绩。 比较:若用一维数组,能表示所有的数据,但不能表示出数据 之间的分组关系
7.2 二维数组
■例76输入某班(30人)期末考试4门课的成绩,计 算出每人的平均成绩,按每行10个数据输出平均成 绩 分析数据结构:30人4门课的成绩用二维数组表示, 30人的平均成绩可用一维数组表示。 算法: S1:输入30人(每人4门课)的成绩。 S2:计算每人的平均成绩。 S3:输出每个人的平均成绩 分别分析每一步如何实现?循环结构 程序