




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学习情境四 数组 任务分解:4.1 认识数组,了解使用数组的场合4.2 使用一维数组4.3 使用二维数组P81情境目标:一维数组和二维数组的定义、数组元素的引用;合理选用一维数组和二维数组解决实际问题;字符数组的定义和使用;对数据进行查找、插入、删除和排序整理课件常用于处理大批量数据数据特点:存在内在联系数组具有相同数据类型的变量集合这些变量都有相同名字,但下标不同称这些变量为数组元素只有一个下标一维数组有两个下标二维数组4.1 认识数组,了解使用数组的场合P82返回整理课件任务描述:86. 若有以下说明和语句,则输出结果是 (strlen(s)为求字符串s的长度的函数) char s12=a
2、 book!; printf(%d,strlen(s); A. 12 B. 8 C. 7 D. 1189. 在c语言中,引用数组元素时,其数组下标的数据类型允许是 。A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式90以下对二维数组a的正确说明是 。A. int a3 ; B. float a(3,4); C. double a14; D. float a(3)(4);91若有说明: int a34; 则对a数组元素的正确引用是 。A. a24 B. a1,3 C. a1+10 D. a(2)(1);4.2 使用一维数组P82返回CCCC整理课件任务描述:9
3、3下面程序(每行程序前面的数字表示行号) 。1 main()2 3 int a3=0;4 int i;5 for(i=0;i3;i+) scanf(%d,&ai);6 for(i=1;is2) B. if(strcmp(s1,s2)C. if(strcmp(s2,sl)0) D. if(strcmp(s1,s2)0)103若有说明:int a10; 则对a数组元素的正确引用是 。Aa10 B. a3.5 C. a(5) D. a10-10104以下能对一维数组a进行正确初始化的语句是 。Aint a10=(0,0,0,0,0) B. int a10=;Cint a=0; D. int a10=
4、10*1;P82返回DDDD整理课件23功能为读入20个整数,统计非负数个数并计算其和。main( ) int i,a20,s,count;s=count=0;for(i=0;i20;i+)scanf(“%d”,_); for(i=0;i20;i+)if(ai0)_; s+=ai;count+;printf(“s=%d,count=%dn”,s,count);&aicontinue整理课件27. 这个程序输入了20个数存放在一个数组中,并且输出其中最大者与最小者,20个数的和及它们的平均值。请填空。 main() int array_; int max,min,average,sum=0; i
5、nt i; for(i=0;i_;i+) printf(请输入第%d个数:,i+1); scanf(%d,_); max=array0; min=array0; for(i=1;i=_;i+) if(maxarrayi) _ sum=_; average = _; printf(20个数中最大值是%d,max); printf(最小值是%d,min); printf(和是%d,sum); printf(平均值是%d。n,average); 2020&arrayi19max=arrayi;min=arrayi;sum+arrayi;sum/20整理课件任务描述:1、假设用一维数组记录某工人三月份
6、的出勤情况,1表示出勤,0表示缺勤。编程,计算该工人三月份的工资。(工资=出勤天数*50元)2、假设数组a中已经存放20个整数,编程,将其中所有偶数存放在数组b中,将所有奇数存放在数组c中。3、某工厂有20名工人,根据1年内每人生产的零件数给奖励,零件数超过1000件的工人奖励500元,零件数在900999件之间的奖励300元。编程,输出每个工人的编号和该工人所生产的零件数及得到奖励工人编号、零件数和奖金。4、假设已将10名学生的成绩存放在数组中,但发现成绩错一位,即将成绩78、56、89、91、48、68、73、85、76、70存放成78、78、56、89、91、48、68、73、85、76
7、。编程,将每人的成绩修正。5、假设有一组已按升序排列的10个整数,编程,输入1个整数,并将此整数插入到该有序序列中。6、编写程序,输入若干个数字,并统计每个数字出现的个数。4.2 使用一维数组P82返回整理课件资讯:4.2.1 定义与引用一维数组4.2.2 在字符串中找出数字字符构造新数组4.2.3 求一批数据中的最大值4.2.4 在有序数据中插入一个数4.2.5 排序数据 4.2 使用一维数组P82返回整理课件4.2.1 定义与引用一维数组【实例4.1】编写程序,根据10种商品的进价和销售价,计算各商品的利润。P82编程思路定义3个含有10个元素的数组a、b、c,分别存放各商品的进价、销售价
8、和利润。利润通过销售价和进价的差得到。 整理课件#include main() int a10=12,8,20,15,28,32,38,45,51,65; int b10=20,13,29,22,37,40,49,56,62,78; int c10=0,i=0; for(i=0; i10; i+) printf(%4d,ai); printf(n); for(i=0; i10; i+) printf(%4d,bi); printf(n); for(i=0; i10; i+) ci=bi-ai; for(i=0; i10; i+) printf(%4d,ci); printf(n);计算各商品利
9、润 整理课件 int a10; 表示:a为一维数组名a的长度为10,即含10个元素元素为a0、a1、a9 元素类型均为整型说明:每个元素都是变量下标:09整理课件数组元素代表内存中的一个存储单元数组元素像普通变量一样使用数组元素用下标形式表示常用循环对数组进行输入输出操作整理课件为a数组分配10个连续的存储单元 (4字节10=40个字节)a0a1a2a3a4a5a6a7a8a9a数组名表示内存首地址,是地址常量整理课件一维数组元素的引用数组必须先定义,后使用只能逐个引用数组元素,不能一次引用整个数组数组元素表示形式: 数组名下标其中:下标可以是常量或整型表达式例 int i=15; int d
10、atai; (不能用变量定义数组维数)例 int a10; printf(“%d”,a); ()必须 for(j=0;j10;j+) printf(“%dt”,aj); ()例 int data5; data5=10; /C语言对数组不作越界检查,使用时要 注意例 #define N 10; float aN; (可以用符号常量定义数组维数)a0=a5+a7-a2*3int a10;如何从键盘上给每一个元素赋值?整理课件例:读程序,写结果main( ) int i, a10; for(i=1;i=0;i-) printf(“%d”,ai);9876543210整理课件一维数组的初始化初始化方式
11、 在定义数组时,为数组元素赋初值(在编译阶段使之得到初值) int a5=1,2,3,4,5;等价于:a0=1; a1=2; a2=3; a3=4; a4=5;说明:数组不初始化,其元素值为随机数对static数组元素不赋初值,系统会自动赋以0值当全部数组元素赋初值时,可不指定数组长度如 int a5=6,2,3; 等价于: a0=6; a1=2;a2=3; a3=0; a4=0;如 int a3=6,2,3,5,1; ()static int a5;等价于:a0=0; a1=0; a2=0; a3=0; a4=0;只给部分数组元素赋初值 int a=1,2,3,4,5,6;编译系统根据初值个
12、数确定数组元素个数int a10=0,0,0,0,0,0,0,0,0,0;或 int a10=0;int a10=0*10; 整理课件4.2.2 在字符串中找出数字字符构造新数组【实例4.2】编写程序,在一串字符中找出所有数字字符构成新的数组。 P84整理课件编程思路ch的值为数字字符的条件是满足ch0 且 ch9需要定义2个数组使用2个循环变量i和j,i用于从第1个数组中逐个访问各元素,j用于构建第2个数组整理课件#include main() char old80=From 500 B.C. to 500 A.D. is 1000 years.,new80=0; int i=0,j=0;
13、while(oldi!=0) if(oldi=0 & oldi=9) newj=oldi; j+; i+; newj=0; puts(old); puts(new); 字符串结束符 整理课件#include main() char old80=From 500 B.C. to 500 A.D. is 1000 years.,new80=0; int i=0,j=0; while(oldi!=0) if(oldi=0 & oldi=9) newj=oldi; j+; i+; newj=0; puts(old); puts(new); 若是数字字符 给新数组元素赋值 新数组元素下标值增1 整理课件
14、#include main() char old80=From 500 B.C. to 500 A.D. is 1000 years.,new80=0; int i=0,j=0; while(oldi!=0) if(oldi=0 & oldi=9) newj=oldi; j+; i+; newj=0; puts(old); puts(new); old0为F,不等于0整理课件#include main() char old80=From 500 B.C. to 500 A.D. is 1000 years.,new80=0; int i=0,j=0; while(oldi!=0) if(old
15、i=0 & oldi=9) newj=oldi; j+; i+; newj=0; puts(old); puts(new); F不是数字字符不执行i变为1整理课件#include main() char old80=From 500 B.C. to 500 A.D. is 1000 years.,new80=0; int i=0,j=0; while(oldi!=0) if(oldi=0 & oldi=9) newj=oldi; j+; i+; newj=0; puts(old); puts(new); old1为r,不等于0整理课件#include main() char old80=Fro
16、m 500 B.C. to 500 A.D. is 1000 years.,new80=0; int i=0,j=0; while(oldi!=0) if(oldi=0 & oldi=9) newj=oldi; j+; i+; newj=0; puts(old); puts(new); r不是数字字符不执行i变为2同样i变为5后整理课件#include main() char old80=From 500 B.C. to 500 A.D. is 1000 years.,new80=0; int i=0,j=0; while(oldi!=0) if(oldi=0 & oldi=9) newj=o
17、ldi; j+; i+; newj=0; puts(old); puts(new); old5为5,不等于0整理课件#include main() char old80=From 500 B.C. to 500 A.D. is 1000 years.,new80=0; int i=0,j=0; while(oldi!=0) if(oldi=0 & oldi=9) newj=oldi; j+; i+; newj=0; puts(old); puts(new); 5是数字字符new0变为5j变为1i变为6整理课件#include main() char old80=From 500 B.C. to
18、 500 A.D. is 1000 years.,new80=0; int i=0,j=0; while(oldi!=0) if(oldi=0 & oldi=9) newj=oldi; j+; i+; newj=0; puts(old); puts(new); old6为0,不等于0整理课件#include main() char old80=From 500 B.C. to 500 A.D. is 1000 years.,new80=0; int i=0,j=0; while(oldi!=0) if(oldi=0 & oldi=9) newj=oldi; j+; i+; newj=0; pu
19、ts(old); puts(new); 0是数字字符new1变为0j变为2i变为7整理课件#include main() char old80=From 500 B.C. to 500 A.D. is 1000 years.,new80=0; int i=0,j=0; while(oldi!=0) if(oldi=0 & oldi=9) newj=oldi; j+; i+; newj=0; puts(old); puts(new); 人为存放字符串的结束符输出两个字符串整理课件字符数组和字符串字符数组定义 字符数组的初始化逐个字符赋值用字符串常量例 char c10; 例 char ch5=H
20、,e,l,l,o;ch0Hello逐个字符赋值ch1ch2ch3ch4 例 char ch5=B,o,y;ch0Boy00逐个字符赋值ch1ch2ch3ch4 例 char ch5=“Boy”;ch0Boy00用字符串常量ch1ch2ch3ch4 例 char ch6=“Hello”; char ch6=“Hello”; char ch=“Hello”;用字符串常量ch0Helloch1ch2ch3ch40ch5整理课件例 输出一个字符串#include main() char c10=I, ,a,m, ,a, ,b,o,y; int i; for(i=0;i10;i+) printf(%c,
21、ci); printf(n);Iamaboy0123456789字符数组的引用整理课件字符串字符串及其结束标志无字符串变量,用字符数组处理字符串字符串结束标志:0例 “hello”共5个字符,在内存占6个字节 字符串长度5 h e l l o 0104 101 108 108 111 0内存存放字符ASCII码整理课件字符串的输入输出逐个字符I/O: %c整个字符串I/O: %s例 用%c main() char str5; int i; for(i=0;i5;i+) scanf(“%c”, &stri); for(i=0;i5;i+) printf(“%c”, stri);例 用%s mai
22、n() char str5; scanf(“%s”, str); printf(“%s”, str);用字符数组名,不要加&输入串长度数组长度遇空格或回车结束自动加0用字符数组名,遇0结束整理课件例 main( ) char a5=H,e,l,l,o; printf(“%s”,a); 例 main( ) char a =“Hello”; printf(“%s”,a); 结果:Hello#-=* h e l l o02314结果:Hello用“%s”输出时,遇0结束整理课件main() char a=h,e,l,0,l,o,0; printf(%s,a);例输出:hel h e l 0 l o
23、0数组中有多个0时,遇第一个结束整理课件main() int i; char a5; scanf(%s,a); for(i=0;i5;i+) printf(%c,ai);运行情况:(1)若输入 hel , 正常(2)若输入 hell , 正常(3)若输入 hello , 用%s 输出时,会出现问题 h e l 0 h e l l 0 h e l l o输入字符串长度数组长度整理课件例 字符串输入举例 H o w 0 a r e 0 y o u ? 0 #include main() char a15,b5,c5; scanf(%s%s%s,a,b,c); printf(a=%snb=%snc=
24、%sn,a,b,c); scanf(%s,a); printf(a=%sn,a);运行情况:输入:How are you?输出:a=How b=are c=you?输入:How are you?输出:a=Howscanf中%s输入时,遇空格或回车结束运行情况:输入:How are you?整理课件4.2.3 求一批数据中的最大值【实例4.3】编写程序,输入100名学生学号和学年总平均成绩,并找出其中成绩最高的学生。P85整理课件编程思路定义2个数组num和score从数组score中查找最大元素下标值开始入手学号存放在num中,对应平均成绩存放在score中整理课件k=0求最大值的算法假设第1
25、个元素最大整理课件k=0求最大值的算法从第2个元素开始找i=1整理课件k=0求最大值的算法没比完?i=1iN?是整理课件k=0求最大值的算法找到更大的?i=1iN?是scorekscorei? 是整理课件k=0求最大值的算法记住更大元素下标值i=1iN?是scorekscorei? 是k=i整理课件k=0求最大值的算法取下一个元素i=1iN?是scorekscorei? 是i增1k=i整理课件k=0求最大值的算法i=1iN?是scorekscorei? 是i增1k=i没比完?找到更大的?否整理课件k=0求最大值的算法i=1iN?是scorekscorei? 是i增1k=i没比完?否否输出sco
26、rek和numk输出最高成绩和对应学号整理课件#include #define N 5main() int numN=0,i=0,k=0; float scoreN=0.0; printf(numbers and scores:n); for(i=0; iN; i+) scanf(%d%f,&numi,&scorei); 方便修改人数整理课件 for(i=0; iN; i+) printf(%8d,numi); printf(n); for(i=0; iN; i+) printf(%8.2f,scorei); printf(n); for(i=1; iN; i+) if(scorekscore
27、i) k=i; printf(%d,%.2fn,numk,scorek); 查找最大元素的下标值 同时输出相同下标的元素 整理课件4.2.4 在有序数据中插入一个数【实例4.4】编写程序,在已按小到大的顺序存入的学号中插入1个新学生学号。要求使学号仍然按原来的顺序有序。P87编程思路查找位置数据移动插入数据整理课件10020num10031006100810100123451007整理课件10020num10031006100810100123451007整理课件10020num10031006100810100123451007整理课件10020num10031006100810100123
28、451007整理课件10020num10031006100810081010123451007整理课件10020num10031006100810081010123451007整理课件#include #define N 5 main() int numN+1=1002,1003, 1006,1008,1010; int i=0,j=0,new=0; printf(Original numbers:n); for(i=0; iN; i+) printf(%6d,numi); printf(n);整理课件printf(Input a student number:);scanf(%d,&new)
29、; for(i=0; iN; i+) if(newi; j-) numj=numj-1;numi=new; 查找插入位置 将数据向后移动 插入数据 整理课件 printf(Final numbers:n); for(i=0; iN+1; i+) printf(%6d,numi); printf(n);整理课件4.2.5 排序数据【实例4.5】编写程序,将8名候选人的投票数由多到少排序。P89整理课件340a564557694812345796167从8个元素中找出最大元素 k=0; for(j=1; j8; j+) if(akaj) k=j;整理课件340a564557694812345796
30、167最大元素与第1个元素对调 k=0; for(j=1; j8; j+) if(akaj) k=j;t=a0; a0=ak; ak=t; 整理课件790a564557694812345346167最大元素与第1个元素对调 k=0; for(j=1; j8; j+) if(akaj) k=j;t=a0; a0=ak; ak=t; 整理课件790a564557694812345346167从后7个元素中找出最大元素 k=1; for(j=2; j8; j+) if(akaj) k=j;整理课件790a564557694812345346167k=1; for(j=2; j8; j+) if(ak
31、aj) k=j;最大元素与第2个元素对调 t=a1; a1=ak; ak=t; 整理课件790a694557564812345346167k=1; for(j=2; j8; j+) if(akaj) k=j;最大元素与第2个元素对调 t=a1; a1=ak; ak=t; 整理课件790a694557564812345346167从后6个元素中找出最大元素 k=2; for(j=3; j8; j+) if(akaj) k=j;整理课件790a694557564812345346167k=2; for(j=3; j8; j+) if(akaj) k=j;最大元素与第3个元素对调 t=a2; a2=
32、ak; ak=t; 整理课件790a696157564812345344567最大元素与第3个元素对调 排序k=i; for(j=i+1; j8; j+) if(akaj) k=j; t=ai; ai=ak; ak=t; for(i=0; i7; i+) 整理课件#include main() int a8=34,56,45,57,69,48,79,61, i=0,j=0,k=0,t=0; for(i=0; i7; i+) k=i; for(j=i+1; j8; j+) if(akaj) k=j; t=ai; ai=ak; ak=t; for(i=0; i8; i+)printf(%5d,ai
33、); printf(n); 整理课件1、假设用一维数组记录某工人三月份的出勤情况,1表示出勤,0表示缺勤。编程,计算该工人三月份的工资。(工资=出勤天数*50元)#include#define N 31void main()int workN;int i;int num=0;int salary;printf(请输入某工人的出勤情况:n);for(i=0;iN;i+)scanf(%d,&worki);for(i=0;iN;i+)if(worki=1)num+;salary=num*50;printf(这名工人的工资是:%dn,salary);整理课件2、假设数组a中已经存放20个整数,编程,将
34、其中所有偶数存放在数组b中,将所有奇数存放在数组c中。#include#define N 20void main()int aN, bN,cN;int i,j=0,k=0;printf(请输入20个整数:n);for(i=0;iN;i+)scanf(%d,&ai);for(i=0;iN;i+)if(ai%2=0)bj=ai;j+;elseck=ai;k+;整理课件printf(数组a中的值为:n);for(i=0;iN;i+)printf(%d ,ai);printf(n);printf(数组b中的值为:n);for(i=0;ij;i+)printf(%d ,bi);printf(n);pri
35、ntf(数组c中的值为:n);for(i=0;ik;i+)printf(%d ,ci);printf(n);整理课件3、某工厂有20名工人,根据1年内每人生产的零件数给奖励,零件数超过1000件的工人奖励500元,零件数在900999件之间的奖励300元。编程,输出每个工人的编号和该工人所生产的零件数及得到奖励工人编号、零件数和奖金。#include#define N 10void main()int aN,bN;int i;printf(请输入工人的编号:n);for(i=0;iN;i+)scanf(%d,&ai);printf(请输入工人生产的零件数:n);for(i=0;iN;i+)sc
36、anf(%d,&bi);printf(工人的编号和零件数为:n);for(i=0;iN;i+)printf(%d ,ai);printf(n);for(i=0;iN;i+)printf(%d ,bi);整理课件printf(n得到奖励的工人的编号、零件数和奖金为:n);for(i=0;i=900&bi=1000)printf(%d %d %d n,ai,bi,500);整理课件4、假设已将10名学生的成绩存放在数组中,但发现成绩错一位,即将成绩78、56、89、91、48、68、73、85、76、70存放成78、78、56、89、91、48、68、73、85、76。编程,将每人的成绩修正。#i
37、nclude#define N 10void main()int scoreN=78,78,56,89,91,48,68,73,85,76;int i;printf(存放错误的学生成绩为:n);for(i=0;iN;i+)printf(%-4d,scorei);printf(n);for(i=1;iN;i+)scorei-1=scorei;score9=70;printf(修正后的成绩为:n);for(i=0;iN;i+)printf(%-4d,scorei);printf(n);整理课件5、假设有一组已按升序排列的10个整数,编程,输入1个整数,并将此整数插入到该有序序列中。#include
38、#define N 10void main() int aN+1;int i,j,num;printf(请输入10个已按升序排列的整数:n);for(i=0;iN;i+)scanf(%d,&ai);printf(原排序数据为:n);for(i=0;iN;i+)printf(%-5d,ai);printf(n请输入要插入的数据:n);scanf(%d,&num);for(i=0;iN;i+)if(num=i;j-)aj+1=aj;ai=num;printf(插入数据后的有序序列为:n);for(i=0;iN+1;i+)printf(%-5d,ai);printf(n);整理课件6、编写程序,输入
39、若干个数字,并统计每个数字出现的个数。#include#define N 10void main()int num,i;int a10=0;printf(请输入若干个数字:n);scanf(%d,&num);while(num!=-1)anum+;scanf(%d,&num);for(i=0;iN;i+)printf(%d出现的个数为:%dn,i,ai);printf(n);整理课件任务描述:90以下对二维数组a的正确说明是 。A. int a3 ; B. float a(3,4); C. double a14; D. float a(3)(4);91若有说明: int a34; 则对a数组元
40、素的正确引用是 。A. a24 B. a1,3 C. a1+10 D. a(2)(1);92以下能对二维数组a进行正确初始化的语句是 。A. int a2=1,0,1,5,2,3; B. int a3=1,2,3,4,5,6;C. int a24=1,2,3,4,5,6; D. int a3=1,0,1,1,1;94若有说明: int a 3=1,2,3,4,5,6,7; 则a数组第一维的大小是 。2 B. 3 C. 4 D. 无确定值105若有说明: int a34; 则对a数组元素的非法引用是 。Aa02*1 B. a13 C. a4-20 D. a04106若有说明:int a34=0;
41、 则下面正确的叙述是 。 A只有元素a00可得到初值0 B此说明语句不正确:。 C数组a中各元素都可得到初值,但其值不一定为0。 D数组a中每个元素均可得到初值04.3 使用二维数组P91返回CCBBDD整理课件107若有说明:int a4=0,0; 则下面不正确的叙述是 。A数组a的每个元素都可得到初值0 B二维数组a的第一维大小为1 C只有元素a00和a01可得初值0,其余元素均得不到初值0 D数组a行数为124函数min_a()用于求一个34矩阵中最小元素。 min_a(int a34) int i,j, min; min=a00; for(i=0;i3;i+) for(j=0;jaij
42、整理课件25根据以下说明,写出正确的说明语句。 (1)men是一个有10个整型元素的数组 _ (2)step是一个有4个实型元素的数组,元素值分别为1.9, -2.33, 0, 20. _ (3)grid是一个二维数组,共有4行,10列整型元素 _26. 请回答下列问题。 (1)array是一个一维整型数组,有10个元素,前6个元素的初值是9,4,7,49,32,-5,请写出正确的说明语句。 (2)该数组下标的取值范围是从_到_(从小到大)。 (3)如何用scanf函数输入数组的第二个元素。 _ (4)如何用赋值语句把39存入第一个元素。 _ (5)如何表示把第六个和第四个元素之和存入第一个元
43、素。 _int men10;float step4=1.9,-2.33,0,20;int grid410;int array10=9,4,7,49,32,-5;09scanf(“%d”,&arrary1);array0=39;array0=array5+array3;整理课件28该程序的运行结果是: min=_,m=_,n=_。 main() float array43= 3.4,-5.6,56.7, 56.8,999.,-.0123, 0.45,-5.77,123.5, 43.4,0,111.2 ; int i,j; float min; int m,n; min = array00; m=
44、0;n=0; for(i=0;i4;i+) for(j=0;j arrayij) min = arrayij; m=i;n=j; printf(min=%5.2f,m=%d,n=%dn,min,m,n); -5.7721整理课件任务描述:1、假设有一个3*4的矩阵,编程,找出其中值最大的元素,并输出最大值、最大值所在的行号和列号。2、假设有一个3*4的矩阵,编程,将其中所有3的倍数的元素值均改为3。4.3 使用二维数组P91返回整理课件资讯:4.3.1 求两个矩阵的和4.3.2 求方阵对角线上元素之和4.3.3 显示算术题和学生答题信息4.3.4 编写不同级别的打字练习程序4.3.5 统计一个
45、学习小组的成绩4.3 使用二维数组P91返回整理课件4.3.1 求两个矩阵的和【实例4.6】编写程序,计算两个34矩阵的和。P91编程思路定义3个二维数组a、b、c。对2个矩阵的所有对应元素求和即可得到该2个矩阵之和。整理课件#include main() int a34=3,8,12,15, 2,6,15,13,5,7,10,16; int b34=6,10,17,15, 5,12,19,20,7,16,21,16; int c34=0,i=0,j=0; 整理课件a00a10a20a00a01a02a03aa12?整理课件a00a10a20a00a01a02a03aa21?整理课件print
46、f(Array a:n);for(i=0; i3; i+) for(j=0; j4; j+)printf(%4d,aij); printf(n);printf(Array b:n);for(i=0; i3; i+) for(j=0; j4; j+)printf(%4d,bij); printf(n);输出一行后换行输出三行整理课件 for(i=0; i3; i+) for(j=0; j4; j+) cij=aij+bij; printf(Array c:n); for(i=0; i3; i+) for(j=0; j4; j+) printf(%4d,cij); printf(n); 整理课件二
47、维数组的定义定义方式:数据类型数组名常量表达式常量表达式;数组元素的存放顺序原因:内存是一维的二维数组:按行序优先多维数组:最右下标变化最快例 int a34; float b25; int c234; int a3,4; ()行数列数元素个数=行数*列数int a32a01a10a11a20a21014523a00a00 a01a10 a11a20 a21int c23401234567.20212223c000c001c002c003c010c011c012c013c020c021c022c023c100c101c102c103c110c111c112c113c120c121c122c12
48、3整理课件二维数组理解例 int a34;a00a01a02a03a10a11a12a13a20a21a22a23每个元素ai由包含4个元素的一维数组组成二维数 a是由3个元素组成a0a1a2行名014523a01a02a03a10a11a00a13a20a21a22a23a1267101189a0a1a2整理课件二维数组元素的引用形式: 数组名下标下标二维数组元素的初始化分行初始化:例 int a23=1,2,3,4,5,6;a00a01a02a10a11a12123456全部初始化按元素排列顺序初始化 例 int a23=1,2,4;a00a01a02a10a11a12120400部分初始
49、化 例 int a3=1,4,5;a00a01a02a10a11a12100450第一维长度省略初始化 例 int a23=1,2,3,4,5,6;a00a01a02a10a11a12123456全部初始化 例 int a23=1,2,4;a00a01a02a10a11a12124000部分初始化 例 int a3=1,2,3,4,5;a00a01a02a10a11a12123450第一维长度省略初始化整理课件4.3.2 求方阵对角线上元素之和【实例4.7】编写程序,分别计算55方阵的主对角线上的元素之和与副对角线上的元素之和。P93整理课件行下标和列下标的值相等 3 18 21 25 28
50、2 61 52 23 3525 17 81 56 6326 60 53 31 6545 37 21 56 63行下标与列下标的和为4if(i=j) s1=s1+aij;if(i+j=4) s2=s2+aij;整理课件#include main() int a55=3,18,21,25,28, 2,61,52,23,35, 25,17,81,56,63, 26,60,53,31,65, 45,37,21,56,63; int i=0,j=0,s1=0,s2=0; 整理课件printf(Array a:n);for(i=0; i5; i+) for(j=0; j5; j+) printf(%4d,
51、aij); printf(n);整理课件 for(i=0; i5; i+) for(j=0; j5; j+) if(i=j) s1=s1+aij; if(i+j=4) s2=s2+aij; printf(s1=%d,s2=%dn,s1,s2);整理课件4.3.3 显示算术题和学生答题信息【实例4.8】编写程序,给小学生出4道100以内2个数的加法题,每道题分数为25,最后将题目与学生的答题结果、正确答案、实际得分显示在屏幕上。P94整理课件a00a10a20a00a01a02a03aa04a05a30加数1加数2学生答案正确答案是否正确本题得分第1题第2题第3题第4题整理课件#include
52、#include #include #define N 4main() int i=0,total=0; int aN6=0;整理课件for(i=0; iN; i+)ai0=random(100); ai1=random(100); printf(%d+%d=,ai0,ai1); scanf(%d,&ai2); ai3=ai0+ai1; if(ai3=ai2) ai4=1; ai5=25; else ai4=0; ai5=0; total=total+ai5; 整理课件 for(i=0; iN; i+)printf(%2d+%2d=%3d%5d %5d%5dn,ai0,ai1, ai2,ai3,ai4, ai5); printf(The score is:%dn,total);整理课件4.3.4 编写不同级别的打字练习程序【实例4.9】假设有3个级别的文字,其中初级由一串小写字母构成,中级由一串大小写字母构成,高级由英文字母和其他字符组成。编写
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中文文献资料检索知到课后答案智慧树章节测试答案2025年春齐鲁师范学院
- 三级人力资源管理师-三级人力资源管理师考试《理论知识》押题密卷2
- 电厂照明施工方案
- 2025年液压机械元件项目发展计划
- 桥梁塔吊施工方案
- 核心素养理念指导下小学语文高效课堂的构建策略
- 关于融资租赁公司会计处理的探讨
- 中小企业融资风险与控制研究
- 网状黄斑病变对早期年龄相关性黄斑变性脉络膜厚度影响的初步研究
- DB11T-建筑消防工程现场检查规程
- 新苏教版科学六年级上实验报告单
- CJT 264-2018 水处理用橡胶膜微孔曝气器
- QCT1177-2022汽车空调用冷凝器
- 第2课 走进物联网 教学课件 -初中信息技术七年级下册浙教版2023
- 土壤侵蚀原理智慧树知到期末考试答案章节答案2024年甘肃农业大学
- 2024年-急诊气道管理共识课件
- 空压机节能技术
- 人工智能在智能物流系统中的应用
- 网上信访业务培训课件
- 郑州澍青医学高等专科学校单招参考试题库(含答案)
- 心衰4级病人护理常规
评论
0/150
提交评论