《编程基础1学习.pptx》由会员分享,可在线阅读,更多相关《编程基础1学习.pptx(88页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、循环 在大多数高级编程语言中(C+、Java)都有for循环语句,它的功能强大并且使用灵活,不仅可以用于循环次数确定的情况下,还能用于循环次数不确定的情况。for语句使用的语法形式为:for(表达式1;表达式2;表达式3)循环体;1第1页/共88页2023/3/282for语句的算法NY流程图流程图计算表达式1 语句计算表达式3表达式2为真?例如:static void main(string args)for(i=1;i=100;i+)Console.Write(i);可部分或全部省略,可部分或全部省略,但但“;”不可省略不可省略第2页/共88页2023/3/283省略for语句的表达式 表
2、达式1、2、3全省略,即:for(;)就等同于:就等同于:while(while(1)1),会无限循环(死循环死循环)注意:在省略某个表达式时,应在适当位置进行循注意:在省略某个表达式时,应在适当位置进行循环控制的必要操作,以保证循环的正确执行环控制的必要操作,以保证循环的正确执行 省略表达式省略表达式省略表达式省略表达式1 1和表达式和表达式和表达式和表达式3 3,即:即:即:即:forfor(;表达式(;表达式2 2;);)就等同于:就等同于:whilewhile(表达式表达式2 2)省略表达式省略表达式省略表达式省略表达式2 2,即:即:即:即:forfor(表达式(表达式1 1;表达式
3、;表达式3 3)就等同于:就等同于:表达式表达式1;while(1)1;while(1)表达式表达式3;3;第3页/共88页2023/3/284例如:i=1;for(;i100)if(i100)for(i=1;i100)if(i100)i+;i+;第4页/共88页2023/3/285例如:【例3-9】编写程序,求100个自然数的和即:s=1+2+3+s=1+2+3+100+100 思路:寻找加数与求和的规律 加数i i从1变到100,每循环一次,使i增1,直到i的值超过100。i i的初值初值设为1。求和设变量 sum sum 存放和,循环求sum=sum+isum=sum+i,直至i超过10
4、0。第5页/共88页2023/3/286注意:为了保证循环正常运行,应该特别注意:循环控制条件的描述 控制条件的初始状态(初始值)控制条件的初始状态(初始值)循环体内部对控制条件的影响循环体内部对控制条件的影响第6页/共88页2023/3/287【例3-10】求n!,即计算p=123n的值。思路:求阶乘与求累加的运算处理过程类似,只要将“+”变为“*”。设置:乘数乘数i i,初值为1,终值为n(n是循环控制终值,需要从键盘输入)累乘器累乘器 p p,每次循环令p=p*i第7页/共88页【例3-11】一张单据上有一个5位数的号码为6*42,其中百位数和千位数已模糊不清,但知道该数能被 57 和
5、67 除尽。设计一个算法,找出该单据所有可能的号码。第8页/共88页循环 while循环语句是C#中不同于for语句的一种循环形式,它由循环条件和循体语句组成,使用while循环语句的语法形式如下所示:while(循环条件)循环体语句;9第9页/共88页2023/3/2810功能:计算表达式的值,为,为truetrue时,重复执行时,重复执行内嵌语句,每执行一次,就判断一次表达式的值,直,每执行一次,就判断一次表达式的值,直到表达式的值为到表达式的值为false false 时结束循环,转去执行时结束循环,转去执行whilewhile后面的语句。后面的语句。N NY Y流程图流程图表达式tru
6、e?语句第10页/共88页2023/3/2811注意:如果如果whilewhile的的 (表达式表达式)值为值为falsefalse,则循环体一次也不执行,则循环体一次也不执行(例如当i的初值=101)。在循环体中必须有使循环趋向结束的操作,否则循环将无限进行(在循环体中必须有使循环趋向结束的操作,否则循环将无限进行(死循环)。)。在循环体中,语句的先后位置必须符合逻辑,否则会影响运算结果。在循环体中,语句的先后位置必须符合逻辑,否则会影响运算结果。思考程序段的输出?while(i=100)i+;sum=sum+i;运行后,输出:运行后,输出:sum=5150sum=5150原因是什么?原因是
7、什么?第11页/共88页【例3-12】编程求下式的值(要求编写成控制台应用程序):S=12+22+102第12页/共88页2023/3/2813说明:所有用 for 语句实现的循环都可以用while 语句实现。等价于:等价于:for(表达式表达式1;表达式表达式2;表达式表达式3)语句;语句;表达式1;while(表达式2)语句;表达式3;第13页/共88页循环 do-while同样是由循环条件和循环体组成,但它while语句略有不同。do-while语句的特点为:先执行循环体,然后判断循环条件是否成立。使用它时的语法形式为:do 循环体while(循环条件);14第14页/共88页2023/
8、3/2815 do-while循环的算法NY循环体表达式true?流程图main()int i=1,sum=0;do sum=sum+i;i+;while(i=100);Console.Write(sum);用用do-whiledo-while语句语句求求100100个自然数的和个自然数的和 第15页/共88页while与 dowhile while 由于先判断条件,如第一次测试条件时,表达式值就为 false,循环体将一次也不执行。因此,当型循环又称“允许 0 次循环”。dowhile 先执行语句,后判断表达式,因此,循环体至少执行一次。因此,直到型循环又称“不允许 0 次循环”。第16页/
9、共88页【例3-13】编一个程序按下列公式求e的值(要求精度达到1e-6)。第17页/共88页2023/3/2818do-while语句的简单应用【例3-14】用辗转相除法求m和n的最大公约数定义定义m、n、rmnT F m和和n交换交换r=m%nm=nn=r 当当r!=0时时输出最大公约数输出最大公约数m第18页/共88页2023/3/2819几种循环语句的比较while和和do-while语句的语句的表达式只有只有一个,for语句有语句有三个。while 和和for先判断循环条件循环条件后执行循环体,循环体,do-while语句语句先执行循环体循环体后判断循环条件。循环条件。whilewh
10、ile语句多用于语句多用于循环次数不定循环次数不定的情况的情况do-whiledo-while语句多用于语句多用于至少要运行一次至少要运行一次的情况的情况forfor语句语句多用于要多用于要赋初值赋初值或或循环次数固定循环次数固定的情况的情况第19页/共88页循环 foreach循环语句是C#中特有的,在C、C+和Java语言中并没有这种循环语句。它非常适合遍历数组中的元素,foreach很重要的优点是它不必去处理数组的下标。使用foreach时它的语法形式一般为:for(类型 标识符 in 表达式)循环体;20第20页/共88页3.3 跳转语句 除了上述的分支语句和循环语句外,还有一种特殊的
11、程序控制语句,即跳转语句。跳转跳转语句用于需要从当前程序跳转到另一行程序执行代码的情况,C#中提供了多种跳转语句,详细介绍goto、break、continue和return语句。21第21页/共88页goto 语句 语句格式:goto 标示符;转向具有给定标签的标记语句,用于跳出深层嵌套循环。goto default、goto case 常数表达式 将控制传递给特定的 switch-case 标签或 switch 语句中的默认标签。第22页/共88页说明(1)如果当前函数成员中不存在具有给定名称的标签,或者 goto 语句不在标签的范围内,则发生编译时错误。(2)goto 语句可将控制转移出
12、嵌套范围(即跳出深层嵌套循环),但是不允许将控制转移进另一个语句块内部,更不能转到另一个函数内部。第23页/共88页2023/3/2824不提倡使用goto语句注意注意:goto语句能实现程序无条件转移,为编语句能实现程序无条件转移,为编程提供了便利。但是无限制地使用,会破程提供了便利。但是无限制地使用,会破坏程序的结构化程度。坏程序的结构化程度。因此应限制使用。因此应限制使用。注意第24页/共88页2023/3/2825后续语句后续语句break;break;Y YN N表达式表达式?后续语句后续语句break;break;表达式表达式?Y YN N 循环中break的应用功能:利用brea
13、k语句能够强迫终止本层循环,转到后续语句执行。whilewhile语句语句do-whiledo-while语句语句后续语句后续语句计算表达式计算表达式3 3计算表达式计算表达式1 1break;break;表达式表达式2?2?Y YN Nforfor语句语句第25页/共88页2023/3/2826例如:int x,n=0,s=0;int x,n=0,s=0;while(n10)Console.Read(x);if(x0)break;if(x0)break;s+=x;n+;int x,n=0,s=0;int x,n=0,s=0;dodo Console.Read(x);x);if(x0)brea
14、k;if(x0)break;s+=x;n+;s+=x;n+;while(n10);while(n10);for(n=0,s=0;n10;n+)for(n=0,s=0;n10;n+)Console.Read(x);x);if(x0)break;if(x0)break;s+=x;s+=x;第26页/共88页break用于退出最近的封闭 switch、while、do 或 for 语句。如果 break 语句不是由 switch、while、do 或 for 语句封闭,则发生编译时错误。当多个 switch、while、do 或 for 语句彼此嵌套时,break 语句只应用于 最里层的语句。若要在
15、多个嵌套层之间转移控制,必须使用 goto 语句。第27页/共88页【例3-15】输入一个整数 X,如果该数是素数,则显示“是素数.”,如果不是则显示“不是素数”。输入一个数mfor(j=2;j=m T F输出YES“输出NO第28页/共88页2023/3/2829后续语句后续语句continue;continue;Y YN N表达式表达式?后续语句后续语句continue;continue;表达式表达式?Y YN N continue语句及应用 功能:中断循环体的本次执行(即跳过循环体中尚未执行的语句),立即开始执行下一次循环。whilewhile语句语句do-whiledo-while语句
16、语句后续语句后续语句计算表达式计算表达式3 3计算表达式计算表达式1 1continue;continue;表达式表达式2?2?Y YN Nforfor语句语句第29页/共88页2023/3/2830例如:int x,n=0,s=0;int x,n=0,s=0;while(n10)Console.Read(x);if(x0)continue;if(x0)continue;s+=x;n+;int x,n=0,s=0;int x,n=0,s=0;dodo Console.Read(x);Console.Read(x);if(x0)continue;if(x0)continue;s+=x;n+;s+
17、=x;n+;while(n10);while(n10);for(n=0,s=0;n10;n+)for(n=0,s=0;n10;n+)Console.Read(x);Console.Read(x);if(x0)continue;if(x0)continue;s+=x;s+=x;第30页/共88页 continue 语句将控制转到最近的封闭 while、do、for 或 foreach 语句的嵌入语句的结束点,从而执行这些语句的另一次迭代。如果 continue 语句不是由 while、do、for 或 foreach 语句封闭的,则发生编译时错误。当多个 while、do 或 for 语句互相嵌
18、套时,continue 只应用于最里层的语句,若要在多个嵌套层之间转移控制,必须使用 goto 语句。第31页/共88页2023/3/2832【例3-16】把100200之间能被7整除的数,以十个数为一行的形式输出,最后输出一共有多少个这样的数。for(n=100;n=200;n+)n能被7整除 T F 终止本次循环 输出n 输出10个数 T F 换行第32页/共88页break VS.continue将控制转移到循环 将控制转移到语句的结束点,从 嵌入语句的结而终止整个循环 束点,即结束本的执行。次循环(执行循环 语句的另一次迭代)第33页/共88页2023/3/2834循环的嵌套 如果循环
19、语句的循环体内又包含了另一条循环语句,则称为循环的嵌套如果循环语句的循环体内又包含了另一条循环语句,则称为循环的嵌套例如:static void main(string args)int i,j;for(i=1;i10;i+)for(j=1;j=i;j+)if(j=i)Console.WriteLine(j*i);else Console.Write(j*i)外循环语句内循环语句第34页/共88页2023/3/2835注意:while、do-while、for循环语句可以并列,也可以相互嵌套,但循环语句可以并列,也可以相互嵌套,但要层次清楚,要层次清楚,不能出现交叉。不能出现交叉。多重循环程序
20、执行时,外层循环每执行一次,内层循环都需要循环执行多次。多重循环程序执行时,外层循环每执行一次,内层循环都需要循环执行多次。例如:例如:for(a=1;a=10;a+)for(b=0;b2n2)f fn n=l l设设 变变 量量 f1f1、f2f2和和 f3f3,并并 为为 f1f1和和 f2f2赋赋 初初 值值 1 1,令令f3=f1+f2f3=f1+f2得到第得到第3 3项;项;l l将将f1f2f1f2,f2f3f2f3,再求,再求f3=f1+f2f3=f1+f2得到第得到第4 4项;项;l l依此类推求第依此类推求第5 5项、第项、第6 6项项这是一种这是一种递推算法递推算法应采用循
21、环实现应采用循环实现第36页/共88页2023/3/2837算法和程序f1=1,f2=1并输出for(i=3;i1e-6);Console.Write(x);x赋初值赋初值x0=x计算计算f计算计算f1 计算计算x=x0-f/f1当当|x-x0|10-6时时输出输出x第41页/共88页2023/3/2842【例3-19】编程序求210000以内的完全数。完全数:完全数:一个数的因子(除了这个数本身)之和等于该数本身。思路:思路:设定设定i i从从2 2变到变到1000010000,对每个,对每个i i找到其因子和找到其因子和s s;判定判定 i is s?若相等,则?若相等,则i i为完全数,
22、否则不是。为完全数,否则不是。例如:例如:6 6的因子是1、2、3,因子和 1+2+36 6因此因此 6 6 是完全数是完全数l l使用使用穷举算法穷举算法l l用用双层循环双层循环实现实现第42页/共88页2023/3/2843算法和程序:static void main(string args)int i,j,s;for(i=2;i=10000;i+)s=0;for(j=1;ji;j+)if(i%j=0)s+=j;if(i=s)Console.Write(s);for(i=2;i=10000;i+)s=0 for(j=1;ji;j+)i%j=0 T F s=s+j i=s T F i是完全
23、数第43页/共88页2023/3/2844【例3-20】编程序,输出以下图形。*一共有一共有4 4 行,每行由空格和星号组成:空格数行,每行由空格和星号组成:空格数按行增加,星号按行减少按行增加,星号按行减少变量变量 i i 控制输出行数,控制输出行数,从从1 1变化到变化到4 4变量变量 j j 控制输出每行的空格和星号:控制输出每行的空格和星号:j j 从从1 1变化到变化到 i i,每次输出一个空格,每次输出一个空格 j j 从从1 1变化到变化到 8-28-2*i i1 1,每次输出一个星号,每次输出一个星号使用使用双重循环双重循环实现实现思路:思路:第44页/共88页2023/3/2
24、845算法:for(i=1;i=4;i+)for(j=1;j=i;j+)输出一个空格 for(j=1;j=8-(2*i-1);j+)输出一个星号 换行思考:思考:l l如何输出如何输出1010行行图形?图形?l l输出图形向右输出图形向右平移平移2020个字符个字符位置,应如何修改程序?位置,应如何修改程序?第45页/共88页3.2 典型实例练能力 典型实例一:根据长度和面积求矩形的高和宽 【实例题目】使用一根长度为L厘米的铁丝,制作一个面积为S的矩形框,要求计算出满足这种条件的矩形的高h和宽w。第46页/共88页典型实例二:百钱买百鸡【实例题目】我国古代数学家在算经中出了一道题:“鸡翁一,值
25、钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?”意为:公鸡每只5元,母鸡每只3元,小鸡3只1元。用100元买100只鸡,问公鸡、母鸡、小鸡各多少?要求编写成控制台应用程序。第47页/共88页3.3 上机练习重应用 上机练习一:邮包计费程序 【练习题目】假定向国外邮寄包裹收费如下计算:首先,包裹重量四舍五入到最近的15克的倍数,然后按表 3-3 收费:重量(克)收费(元)014.951529.993044.9124559.9146074.91575以上每增加10克,邮费增加一元第48页/共88页上机练习二:捉拿肇事司机【练习题目】一辆卡车违反交通规则,撞死行人,司机畏罪
26、驾车逃跑。当时有三个人目击这一车祸的发生,但都没有看清卡车的牌照号码,只记住牌照号码的部分特征,甲记住牌照号码的前两位数字是相同的,乙记住牌照号码的后两位数字是相同的,丙是一位数学家,他说“车牌号码肯定是四位数,而且恰好是一个整数的平方。”,并且丙已推导出符合该条件的号码只可能有一个。根据这些信息来判定车牌号并捉拿肇事司机。要求编写控制台应用程序。第49页/共88页【执行结果】第50页/共88页好好的学习这一章至关重要第51页/共88页第52页/共88页l 本章要点l l掌握一维、二维数组的定义和引用方法、存储结构和初始化方掌握一维、二维数组的定义和引用方法、存储结构和初始化方法。法。l l掌
27、握有关一维数组的有关算法掌握有关一维数组的有关算法l l掌握数组的运算。掌握数组的运算。第53页/共88页l 主要内容1 1 一维数组的定义和引用一维数组的定义和引用2 2 二维数组的定义和引用二维数组的定义和引用3 3 多维数组定义和引用多维数组定义和引用4 4 不规则数组定义和引用不规则数组定义和引用第54页/共88页1.一维数组的定义格式有两种方式分别为:(1):类型说明符 数组名;(2):类型说明符 数组名=new 类型说明符常量表达式;例如:intint a=1,2,3;a=1,2,3;int a=new int10;int a=new int10;它表示定义了一个整形数组,数组名为
28、a a。一维数组的定义一维数组的定义说明:1.1.数组名命名规则和变量名相同,遵循标识符命名规则。第55页/共88页2.在定义数组时,需要指定数组中元素的个数,方括弧中的常量表达式用来表示元素的个数,即数组长度。3.表达式中可以包括常量和符号常量,还能包含变量。第56页/共88页2.2.一维数组在内存中的存放每个数据元素占用的字节数,就是基类型的字节数一个元素占4个字节一维数组:floatfloat markmark=;mark0mark1mark2mark3.mark9986.592.077.552.0.94.0低地址 高地址第57页/共88页注意:定义数组时用到的“常量表达式数组名”和引用
29、数组元素时用到的“数组名下标”是有区别的。例如 int a=new int6;t=a6;一维数组元素的引用1.1.数组元素的引用方式数组名下标下标可以是整型常量或整型表达式。例如:a0=a5+a7-a2*3第58页/共88页对数组元素初始化的实现方法:1.1.在定义数组时对数组元素赋以初值。例如:int:int a=0,1,2,3,4,5,6,7,8,9;a=0,1,2,3,4,5,6,7,8,9;将数组元素的初值依次放在一对花括弧内。经过上面的定义和初始化之后,a0=0,a1=1,a2=2,a3=3,a4=4,a5=5,a6=6,a7=7,a8=8,a9=9。一维数组的初始化一维数组的初始化
30、第59页/共88页 3.3.如果想使一个数组中全部元素值为0 0,可以写成:intint a=0,0,0,0,0,0,0,0,0,0;a=0,0,0,0,0,0,0,0,0,0;或intinta=new int10;a=new int10;不能写成:int int a=0*10;a=0*10;注意:C#:C#语言中数组的默认值为0;0;2.2.可以只给一部分元素赋值。例如:int:int a=new int10;a=new int10;for(i=0;i5;i+)ai=i;第60页/共88页f0=1;f0=1;f1=1;f1=1;for(i=2;i20;i+)for(i=2;i20;i+)f
31、fi i=f=fi-2i-2+f+fi-1i-1;for(i=0;i20;i+)for(i=0;i20;i+)Console.Write(f Console.Write(fi i););if(i+1)%5=0)if(i+1)%5=0)Console.Write(Console.Write(n);n);/*For/*For循环结束*/运行结果如下:1 1 2 3 51 1 2 3 5 8 13 21 34 55 8 13 21 34 55 89 144 233 377 610 89 144 233 377 610 987 1597 2584 4181 6765 987 1597 2584 418
32、1 6765if语句用来控制换行,每行输出5个数据。第61页/共88页第二趟比较如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次两两比较,在第j趟比较中要进行n-j次两两比较。第62页/共88页程序流程图如下:第63页/共88页for(i=0;i10;i+)ai=Convert.ToInt32(Console.ReadLine();for(j=0;j9;j+)for(i=0;iai+1)t=ai;ai=ai+1;ai+1=t;Console.Write(“排序后:n0”,aj);/*/*程序结束*/程序运行结果如下:input 10 numbers:input 10 numbe
33、rs:1 0 4 8 12 65-76 100-45 1231 0 4 8 12 65-76 100-45 123the sorted numbers:the sorted numbers:-76-45 0 1 4 8 12 65 100 123-76-45 0 1 4 8 12 65 100 123第64页/共88页 7.2 二维数组的定义和引用 二维数组的定义二维数组的定义二维数组定义的格式有两种分别为:(1):类型说明符,数组名;(2):类型说明符,数组名=new 类型说明符常量表达式,常量表达式;例如:定义a为34(3行4列)的数组,b为510(5行10列)的数组。如下:New flo
34、at 3,4,5,10;第65页/共88页注意:我们可以把二维数组看作是一种特殊的一维数组:它的元素又是一个一维数组。例如:可以把a看作是一个一维数组,它有3个元素:a0、a1、a2,每个元素又是一个包含4个元素的一维数组。第66页/共88页 二维数组的定义 二维数组中的元素在内存中的排列顺序是:按行存放,即先顺序存放第一行的元素,再存放第二行的元素 一维数组在内存中的存放一维数组在内存中的存放一维数组在内存中的存放一维数组在内存中的存放下图表示对下图表示对下图表示对下图表示对a a3,43,4数组数组数组数组存放的顺序存放的顺序存放的顺序存放的顺序 第67页/共88页地址地址地址地址 值值值
35、值 数组元素数组元素数组元素数组元素b b00,00b b00,11b b00,22b b11,00b b11,11b b11,22b b22,00b b22,11b b22,223003000 0H H3003002 2H H3003004 4H H3003006 6H H3003008 8H H300300A AH H300300C CH H300300E EH H30301010H H例如:整型数组 b3,3=1,2,3,4,5,6,7,8,9;123456789第68页/共88页 a0,0,0a0,0,1a0,0,2a0,0,3a0,0,0a0,0,1a0,0,2a0,0,3 a0,1
36、,0a0,1,1a0,1,2a0,1,3 a0,1,0a0,1,1a0,1,2a0,1,3 a0,2,0a0,2,1a0,2,2a0,2,3 a0,2,0a0,2,1a0,2,2a0,2,3 a1,0,0a1,0,1a1,0,2a1,0,3 a1,0,0a1,0,1a1,0,2a1,0,3 a1,1,0a1,1,1a1,1,2a1,1,3 a1,1,0a1,1,1a1,1,2a1,1,3 a1,2,0a1,2,1a1,2,2a1,2,3 a1,2,0a1,2,1a1,2,2a1,2,3三维数组的元素排列顺序第69页/共88页二维数组元素的表示形式为:数组名下标,下标例如:a2,3下标可以是整型
37、表达式,如 a2-1,2*2-1数组元素可以出现在表达式中,也可以被赋值例如:例如:b b1,21,2=a=a2,32,3/2/2 二维数组的引用第70页/共88页常出现的错误有:常出现的错误有:int a3,4;/*/*定义a a为3434的数组*/a3,4=3;在使用数组元素时,应该注意下标值应在已定义的数组大小的范围内。第71页/共88页可以用下面的方法对二维数组初始化:数据类型 常量表达式1,常量表达式2数组名 初始化数据;分行给二维数组赋初值。例如:int int,a=1a=1,2 2,3 3,44,55,6 6,7 7,88,99,1010,1111,12;12;二维数组的引用二维
38、数组的引用注意:初始化时必须要将所有的项都付值.第72页/共88页 二维数组程序举例二维数组程序举例 例7.4 7.4 将一个二维数组行和列元素互换,存到另一个 二维数组中。Using System;Static void main(string args)int 2,3 a=1,2,3,4,5,6;int 3,2 b,i,j;Console.Write(array a:n);for(i=0;i=1;i+)for(j=0;j=2;j+)例如:a=1 2 3 1 4a=1 2 3 1 4 4 5 6 b=2 5 4 5 6 b=2 5 3 6 3 6第73页/共88页 Console.Write
39、(ai,j);bj,i=ai,j;Console.Write(n);Console.Write(array b:n);for(i=0;i=2;i+)for(j=0;j=1;j+)Console.Write(bi,j);Console.Write(n);/*/*程序结束*/运行结果如下:array a:array a:1 2 3 1 2 3 4 5 6 4 5 6array b:array b:1 4 1 4 2 5 2 5 3 6 6 第74页/共88页例7.5:7.5:有一个34的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。N-S流程图表示算法 如下:第75页/共8
40、8页程序:Using System;Static void Main(string args)int i,j,row=0,colum=0,max;int a34=1,2,3,4,9,8,7,6,-10,10,-5,2;max=a0,0;第76页/共88页for(i=0;i=2;i+)for(j=0;jmax)max=ai,j;row=i;colum=j;Console.Write(“0,1,2n”,max,row,colum);/*程序结束*/第77页/共88页 7.3 字符数组 字符数组的定义字符数组的定义定义方法与前面介绍的类似。例如:char c=new char10;c0=I;c1=;
41、c2=a;c3=m;c4=;c5=h;c6=a;c7=p;c8=p;c9=y;第78页/共88页对字符数组初始化,可逐个字符赋给数组中各元素。例如:Char c=I,a,m,h,a,p,p,y 字符数组的初始化字符数组的初始化第79页/共88页如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。char cchar c=I,a,m,h,=I,a,m,h,a,p,p,y;a,p,p,y;数组数组c c的长度自动定为的长度自动定为1010。第80页/共88页 char char 5,55,5 diamond=diamond=,*,*,*,*,*,*
42、,*,*定义和初始化一个二维字符数组 第81页/共88页 字符数组的引用字符数组的引用例7.6 输出一个字符串。程序如下:Using System;Static void main(string args)char c=I,a,m,a,b,o,y;int i;for(i=0;i10;i+)Console.Write(ci);运行结果:I am a boyI am a boy 第82页/共88页例例7.7 7.7 输出一个钻石图形输出一个钻石图形 Using system;Static void main(string args)char5,5 diamond=,*,*,*,*,*,*,*,*;
43、int i,j;for(i=0;i5;i+)for(j=0;j5;j+)Console.Write(diamondi,j);运行结果 *第83页/共88页定义字符串数组例如:string c=“Pascal programPascal program”;输出字符串数组;For(i=0;in;i+)Console.writeLine(ci)第84页/共88页数组的数组定义方法如下:数组类型 数组变量;如:int array=new int2 new int35,6,4,new int41,2,3,4;for(int i=0;i2;i+)Console.Write();foreach(int j in arrayi)Console.Write(0,j);第85页/共88页Foreach循环一般形式:Foreach(类型 变量名 in 数组名).这个循环会遍历每个元素,依次把每个元素放至到变量中,且没有访问非法元素的危险.同时不需要考虑数组的元素个数,并可以保证循环中使用到每个元素.第86页/共88页例如:Int2,3 aa=new int2,33,2,3,4,5,65;Foreach(int k in aa)Console.write(k);第87页/共88页感谢您的观看。第88页/共88页
限制150内