控制结构(有动画)_第1页
控制结构(有动画)_第2页
控制结构(有动画)_第3页
控制结构(有动画)_第4页
控制结构(有动画)_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、9.3 9.3 控制结构控制结构 9.4 9.4 常用算法常用算法 同济大学同济大学 9.3 9.3 控控 制制 结结 构构 顺顺 序序 结结 构构 选选 择择 结结 构构 循循 环环 结结 构构 本单元教学目的本单元教学目的 了解三种基本控制结构的作用了解三种基本控制结构的作用 熟练运用熟练运用ifif语句的多种分支形式描述程序语句的多种分支形式描述程序 熟练运用三种循环语句描述各种重复操作熟练运用三种循环语句描述各种重复操作 领会复合语句在控制结构中的正确运用领会复合语句在控制结构中的正确运用 【引例引例】 利用公式利用公式 s=s= )()(cpbpapp 编程求以编程求以a a、b b

2、、c c做三边的三角形的面积。其中,做三边的三角形的面积。其中,p p为三为三 角形三边和的一半,即:角形三边和的一半,即: p=(a+b+c)/2p=(a+b+c)/2 分析:分析: 求解问题的数学模型能够通过一个数学公式来描述时程求解问题的数学模型能够通过一个数学公式来描述时程 序是最易实现的,按以往的知识可将问题的核心部分表序是最易实现的,按以往的知识可将问题的核心部分表 达如下:达如下: 一、一、 从引例了解三种结构从引例了解三种结构 程序段程序段1 1: cinabc;cinabc; p=(a+b+c)/2;p=(a+b+c)/2; s=sqrt(ps=sqrt(p* *(p-a)(

3、p-a)* *(p-b)(p-b)* *(p-c);(p-c); coutcout三角形面积为三角形面积为:sendl;:sabc;cinabc; s=sqrt(ps=sqrt(p* *(p-a)(p-a)* *(p-b)(p-b)* *(p-c);(p-c); 引例分析实现引例分析实现 语句是有顺序的,顺序结构语句是有顺序的,顺序结构不是语句的简单罗列不是语句的简单罗列。 (观察以下初学者常犯错误)(观察以下初学者常犯错误) 未考虑公式的适用条件未考虑公式的适用条件 运行包含程序段运行包含程序段1的程序并思考:的程序并思考: 有条件地按公式求解有条件地按公式求解 引例分析实现引例分析实现 ?

4、问题产生的原因?问题产生的原因? ?如何解决?如何解决? ?分别输入两组测试数据分别输入两组测试数据3、4、5和和3、4、9, 结果如何?结果如何? 程序段程序段2: p p=(a+b+c)/2;=(a+b+c)/2; s=sqrt(p s=sqrt(p* *(p-a)(p-a)* *(p-b)(p-b)* *(p-c);(p-c); cout cout三角形面积为三角形面积为:sendl;:scif(a+bc ; 值非值非0执行语执行语 句,否则跳过句,否则跳过 引例分析实现引例分析实现 复合语句:复合语句: 一对花括号将多条语句组合成一一对花括号将多条语句组合成一 个整体,以满足语法上对此

5、位置个整体,以满足语法上对此位置 只允许有一条语句的要求。只允许有一条语句的要求。 用用逻辑表达式逻辑表达式表达表达 三边构成条件三边构成条件 A A B B A=(a+b+c)/2; s=sqrt(p s=sqrt(p* *(p-a)(p-a)* *(p-b)(p-b)* *(p-c);(p-c); cout cout三角形面积为三角形面积为:sendl;:sendl; 如何进一步改进程序段如何进一步改进程序段2,在不满足三角形三边构成,在不满足三角形三边构成 条件时给予相应的提示?条件时给予相应的提示? elseelse cout cout不是三角形的三边不是三角形的三边endl;endl

6、; 表达式 true 语句 2 false 语句 1 双分支选择结构双分支选择结构 if(if(表达式)表达式) 语句语句1;1; elseelse 语句语句2;2; 非非0执行语执行语 句句1,否则,否则 执行语句执行语句2 引例分析实现引例分析实现 ?进一步思考:进一步思考: 如何在输入错误数据时允许重新输如何在输入错误数据时允许重新输 入,以便能得到正确的结果?入,以便能得到正确的结果? 程序段程序段4 4: cout cout数据错误数据错误, ,重新输入重新输入:endl;:abc;abc; p=(a+b+c)/2; p=(a+b+c)/2; s=sqrt(p s=sqrt(p* *

7、(p-a)(p-a)* *(p-b)(p-b)* *(p-c);(p-c); cout cout三角形面积为三角形面积为:sendl;:sc x=y; y=t;t=x; x=y; y=t; if(xy)if(xy) t=x; x=y; y=t; t=x; x=y; y=t; #include iostream.h#include iostream.h void main()void main() int x,y,t; int x,y,t; cout cout输入输入 x yendl;x yxy; cinxy; if (xy)if (xy) t=x; x=y; y=t; t=x; x=y; y=

8、t; coutxyendl; coutxyendl; 程序实现程序实现 xy t=x; x=y; y=t; true 三条语句作为三条语句作为 一个执行整体一个执行整体 【例例2 2】将任意输入的两个整数将任意输入的两个整数x,y中较大的数放中较大的数放 在在max变量中,较小的数存于变量中,较小的数存于min变量中。变量中。 if if语句双分支形式示例语句双分支形式示例 要点:要点: 根据根据xy成立与否,分别对变量成立与否,分别对变量max 和和min赋不同值。赋不同值。 关键:关键: 多条语句置于分支控制之下的表达多条语句置于分支控制之下的表达 #include iostream.h#

9、include iostream.h void main()void main() int x,y,max,min; int x,y,max,min; cout cout输入输入 x yendl;x yxy; cinxy; if (xy)if (xy) else else coutmin=minendl; coutmin=minendl; coutmax=maxendl; coutmax=maxendl; 程序实现程序实现 观察并思考:观察并思考: ? ?去掉去掉if表达式后面的一对花括表达式后面的一对花括 号会怎样?号会怎样? ?原因原因 min=x; max=y; min=x; max=y

10、; min=y; max=x; min=y; max=x; ? ?去掉去掉else表达式后面的一对花表达式后面的一对花 括号会怎样?括号会怎样? 分别对照以下两组数据的结果分别对照以下两组数据的结果 第一组:第一组: 10 20 第二组:第二组: 20 10 条件运算符条件运算符 条件运算符是唯一的三目运算符,条件运算符是唯一的三目运算符,形式如下:形式如下: e1e1?e2e2:e3e3 作用:作用: 当当e1成立时,将成立时,将e2的值作为整个表达式的的值作为整个表达式的 值,不再计算值,不再计算e3的值;否则取的值;否则取e3的值作为的值作为 整个表达式的结果,而不计算整个表达式的结果,

11、而不计算e2的值。的值。 前面的前面的if-else语句还可通过语句还可通过C语言中的条件运算实现:语言中的条件运算实现: xy xy ? ? ( (min=x,max=y) min=x,max=y) : : ( (min=y,max=x);min=y,max=x); if if语句多分支形式语句多分支形式 if (if (表达式表达式1)1) 语句语句1;1; else if ( else if (表达式表达式2)2) 语句语句2;2; else if ( else if (表达式表达式n)n) 语句语句n;n; else else 语句语句n+1;n+1; 表达式 2 表达式 n true

12、 false 语句 n 语句 n+1 语句 2 语句 1 表达式1 false false true true 说明:说明: 任意一个表达式非任意一个表达式非0,则执行其后紧跟的一条语句而跳过所有其,则执行其后紧跟的一条语句而跳过所有其 它语句;若所有表达式皆为它语句;若所有表达式皆为0,则执行语句,则执行语句n+1。 if if语句多分支形式示例语句多分支形式示例 【例例3 3】已知百分制成绩已知百分制成绩mark,要求将其转换为,要求将其转换为 对应的五级制成绩,评定条件:对应的五级制成绩,评定条件: 等级等级= A (mark90) B (80mark90) C (70mark80) D

13、 (60mark70) E (mark= 60mark = 60) ) grade= grade=D D; ; else if( mark = 70) else if( mark = 70) grade= grade=C C; ; else if (mark = 80) else if (mark = 80) grade= grade=B B; ; else if (mark =90) else if (mark =90) gradegrade= =A A; ; elseelse gradegrade= =E E; ; 错误原因?错误原因? ?如何保证逻辑关系正确如何保证逻辑关系正确 要点分析

14、要点分析 程序实现程序实现 #include iostream.h#include iostream.h void main()void main() int mark;int mark; char grade;char grade; coutinput mark(0coutinput mark(0100):endl;100):mark;cinmark; if(mark = 90)if(mark = 90) grade=A;grade=A; else if(mark= 80)else if(mark= 80) grade=B;grade=B; else if(mark=70)else if(m

15、ark=70) grade=C;grade=C; else if(mark=60)else if(mark=60) grade=D;grade=D; elseelse grade=E;grade=E; coutmark=mark,grade=gradeendl;coutmark=mark,grade=gradeendl; ?思考:若将五级表示为思考:若将五级表示为 “优、良、中、及格、不优、良、中、及格、不 及格及格”,还能使用,还能使用grade变变 量吗?程序如何修改?量吗?程序如何修改? if if语句的嵌套形式语句的嵌套形式 【例例4 4】某学校对教工进行分组体检,分组如下:某学校对教

16、工进行分组体检,分组如下: 40岁以下男教工岁以下男教工-A组组 40岁以上男教工岁以上男教工-B组组 40岁以下女教工岁以下女教工-C组组 40岁以上女教工岁以上女教工-D组组 要点:要点: ?按性别和年龄的条件组合,如何表达?按性别和年龄的条件组合,如何表达? if(sex=if(sex=m m) ) if(age40) if(age40) group= group=A A; ; else else group= group=B B; ; 多分支语句实现多分支语句实现 ifif后面的语句本身后面的语句本身 又是一个又是一个ifif语句语句 ?同一性别条件下,按不同年龄分不同组,如何表达?同

17、一性别条件下,按不同年龄分不同组,如何表达? if if语句的嵌套形式语句的嵌套形式 在在if语句中,如果语句中,如果if或或else后面的语句本身又是一个后面的语句本身又是一个if 语句,则称为语句,则称为if语句的嵌套。如:语句的嵌套。如: if(表达式表达式1) if(表达式表达式11) 语句语句11; else 语句语句12; else 语句语句2; 锯齿书写格式反映语句锯齿书写格式反映语句 间的层次,以增强可读性间的层次,以增强可读性 else始终与它上面最近始终与它上面最近 的的if语句配对,但要求这语句配对,但要求这 个个if语句没有其它的语句没有其它的else 与之匹配与之匹配

18、 。 程序实现程序实现 #include iostream.h#include iostream.h void main()void main() char sex,group; char sex,group; int age; int age; coutinput sex(f or m) and age:endl; coutinput sex(f or m) and age:sexage; cinsexage; if(sex=m) if(sex=m) if(age40)if(age40) group=A; group=A; elseelse group=B; group=B; else el

19、se if(age40)if(age40) group=C; group=C; elseelse group=D; group=D; coutgroup=groupendl; coutgroup=groupendl; ?将此嵌套形式如将此嵌套形式如 何转换成多分支形式何转换成多分支形式 ifif和和elseelse本身的语句本身的语句 又都是一个分支语句又都是一个分支语句 三三 循环结构循环结构 while (while (表达式表达式) ) 语句语句; ; for(for(表达式表达式1;1;表达式表达式2;2;表达式表达式3)3) 语句语句; ; 当型循环:当型循环: 先判断后执行的循环语

20、句(循环体可能一次也不执行)先判断后执行的循环语句(循环体可能一次也不执行) 循环条件非循环条件非0时执行循环体,否则退出循环时执行循环体,否则退出循环 循环条件循环条件 循环体循环体 (一条语句)(一条语句) 1 1、累加和、累加和 2 2、猜数游戏、猜数游戏 3 3、ASCIIASCII码对照表码对照表 4 4、求极大值、求极大值 5 5、最大公约数、最大公约数 6 6、素数、素数 7 7、穷举法、穷举法 9.4 9.4 常用算法和案例常用算法和案例 【例例5 5】求求199的奇数和,即的奇数和,即s=1+3+5+ +99 要点:要点: ?如何表达重复求和操作如何表达重复求和操作 循环结构

21、示例循环结构示例 ?什么条件下重复求和什么条件下重复求和 ?重复什么动作重复什么动作 ?如何终止循环如何终止循环 ?求和前必要的准备求和前必要的准备 循环结构循环结构 循环条件循环条件 循环体循环体 循环体中包含使循环循环体中包含使循环 条件发生改变的语句条件发生改变的语句 实现实现 s=1+3+5+ +99 循环前准备:循环前准备: s=0s=0 i=1i=1 循环条件循环条件 循环体循环体 #include iostream.h#include iostream.h void main( )void main( ) int i(1),s(0); int i(1),s(0); while(i

22、100) while(i100) s=s+i; s=s+i; i=i+2; i=i+2; couts=sendl; couts=sendl; 关键:要求一条关键:要求一条 语句,需复合语句,需复合 程序实现(程序实现(whilewhile语句)语句) 累加和清零累加和清零 通项通项取第一取第一个数个数 i100i100 s=s+is=s+i i=i+2i=i+2 s s+=i;+=i; i+=i+=2;2; 等价于等价于 又如又如“+=+=”、“-=-=”、“* *= =”、“/=/=”和和“%=%=”等等都是等等都是复复 合赋值运算符,理解合赋值运算符,理解关键关键: 右端的表达式是一个整体

23、右端的表达式是一个整体 例如:例如: 变量变量+=+=表达式表达式变量变量 = = 变量表达式变量表达式 复合赋值运算符复合赋值运算符 赋值运算符还可以与算术运算符等组合在一起构成复合赋值运算符还可以与算术运算符等组合在一起构成复合 赋值运算符,使得表达更加赋值运算符,使得表达更加简洁、高效简洁、高效,其含义如下,其含义如下: b/=a+2b/=a+2 b = b/(a+2) b = b/(a+2)等价于:等价于: #include iostream.h#include iostream.h void main( )void main( ) int int i(1),i(1),s(0); s(

24、0); while( while(i100i100) ) s=s+i; s=s+i; i=i+2;i=i+2; couts=sendl; couts=sendl; 程序实现(程序实现(forfor语句)语句) #include iostream.h#include iostream.h void main( )void main( ) int i,s(0); int i,s(0); for( for(i=1i=1; ; i100;i100; i=i+2i=i+2) ) s=s+i; s=s+i; couts=sendl; couts=sguess;cinguess; if(guessresul

25、t)if(guessresult) cout cout“too bigtoo big”; ; else if(guessresult)else if(guessresult) cout cout“too smalltoo small”; ; 循环体循环体 语句类型语句类型 因要因要先输入一个猜测先输入一个猜测 的数的数与计算机产生的与计算机产生的 数做相等与否的判断,数做相等与否的判断, 所以所以适合选择适合选择do- while语句。语句。 要点分析要点分析 #include iostream.h#include iostream.h #include stdlib.h#include st

26、dlib.h void main()void main() int guess,result;int guess,result; coutcout产生产生随机数随机数endl;endl; result=rand()%101;result=rand()%101; dodo coutcout输入猜测的数输入猜测的数:endl;:guess;cinguess; if(guessresult)if(guessresult) couttoo bigcouttoo bigendl;endl; else if(guessresult)else if(guessresult) couttoo smallcou

27、ttoo smallendl;endl; while(guess!=result);while(guess!=result); coutcout恭喜你,猜对了!恭喜你,猜对了!endl;endl; 语句结尾语句结尾 有分号有分号 程序实现程序实现 ?如果限定最多只能如果限定最多只能 猜猜5次程序如何修改次程序如何修改 【例例7 7】将可打印的将可打印的ASCII码制成表格输出,使每个码制成表格输出,使每个 字符与其编码值对应,每行打印字符与其编码值对应,每行打印7个字符。个字符。 ?忘记某个字符的忘记某个字符的ASCIIASCII码怎么办码怎么办 要点:要点: ?字符与整型数据如何转换字符与整

28、型数据如何转换 字符在内存中以字符在内存中以ASCII码形式存储码形式存储 字符与整型数据间可相互赋值字符与整型数据间可相互赋值 ?如何控制每行打印如何控制每行打印7个字符个字符 满足满足i%7=0时,输出换行时,输出换行 ?可打印字符有哪些可打印字符有哪些 int a=c char c=97 ASCII码在码在32126 之间的字符之间的字符 程序实现程序实现 #include iostream.h#include iostream.h void main()void main() int i(0),ascii;int i(0),ascii; char c;char c; couttttAS

29、CIIcouttttASCII码对照表码对照表endl;endl; for(ascii=32;ascii=126;ascii+)for(ascii=32;ascii=126;ascii+) c=ascii; c=ascii; coutc=asciit;coutc=asciit; i+;i+; if (i % 7=0) coutendl; if (i % 7=0) coutendl; coutendl;coutx;cinx; xmax=xxmax=x 程序实现程序实现 #include iostream.h#include iostream.h void main()void main() in

30、t x,xmax; int x,xmax; cinx; cinx; xmax=x; xmax=x; while(x!=-1) while(x!=-1) if(xxmax)if(xxmax) xmax=x; xmax=x; cinx;cinx; cout cout最大值最大值=xmaxendl;=xmaxn吗吗 m n rm n r 2424 10 4 10 4 1010 4 2 4 2 4 2 04 2 0 #include iostream.h#include iostream.h void main( )void main( ) int m, n, t, r; int m, n, t, r

31、; do do cout cout请输入请输入 m n endl;m n mn;cinmn; while(m=0|n=0); while(m=0|n=0); if(mn) if(mn) t=m; m=n; n=t; t=m; m=n; n=t; while( while( (r=m % n)(r=m % n) !=0) !=0) m=n; n=r; m=n; n=r; cout cout最大公约数为最大公约数为 nendl; nm; cinm; for(k=2;km;k+) for(k=2;km;k+) if(m%k=0)if(m%k=0) break; break; if(k=m) if(k

32、=m) coutmcoutm是素数是素数endl;endl; else else coutmcoutm不是素数不是素数endl;endl; 循环退出的条件有几个?循环退出的条件有几个? 循环怎样退出的?循环怎样退出的? 如何输出某个范围内的所有素数?如何输出某个范围内的所有素数? 程序实现程序实现 辅助控制语句,强制退出循环辅助控制语句,强制退出循环 【例例11 11】将将2100之间的所有素数以每行之间的所有素数以每行8个输出。个输出。 要点:要点: 前例的素数判别过程成为该列的循环体前例的素数判别过程成为该列的循环体 ?嵌套循环的内外循环体如何正确表达嵌套循环的内外循环体如何正确表达 使用

33、双重循环使用双重循环-嵌套循环嵌套循环 逻辑上清楚哪些语句是外循环循环体,哪逻辑上清楚哪些语句是外循环循环体,哪 些是内循环循环体些是内循环循环体 明确循环体语句只能是一条语句,何时需明确循环体语句只能是一条语句,何时需 以复合语句表达以复合语句表达 程序实现程序实现 #include iostream.h#include iostream.h void main()void main() int k,m,num=0;int k,m,num=0; for(m=2;m100;m+)for(m=2;m100;m+) for(k=2;km;k+)for(k=2;km;k+) if(m%k=0) if

34、(m%k=0) break; break; if(k=m)if(k=m) coutmt;coutmt; num+;num+; if(num%8=0)if(num%8=0) coutendl;coutendl; 能下移一行吗?能下移一行吗? 谁的循环体?谁的循环体? 能放在复合语能放在复合语 句之外吗?句之外吗? 【例例1212】交通事故中肇事车辆撞人后逃逸,警方在交通事故中肇事车辆撞人后逃逸,警方在 现现 场找到场找到3位目击证人询问肇事车辆位目击证人询问肇事车辆5位车牌号码。一位位车牌号码。一位 说只看清最左两位为说只看清最左两位为27,一位说只看清最后位是,一位说只看清最后位是3,另,另

35、一位说牌号是一位说牌号是67的倍数。请帮助找出该车牌号。的倍数。请帮助找出该车牌号。 要点:要点: 枚举法是通过逐个考察某类事件的所有可能情况,从枚举法是通过逐个考察某类事件的所有可能情况,从 中找出符合要求的答案的方法。中找出符合要求的答案的方法。 ?需要枚举的数字有几位需要枚举的数字有几位 ?需要枚举的几位数字间的关系如何需要枚举的几位数字间的关系如何 ?5位车牌号如何描述位车牌号如何描述 枚举法(穷举法)枚举法(穷举法) 0909 百位百位(i3) 权重权重100 十位十位(i2) 权重权重10 for(i3=0;i3=9;i3+)for(i3=0;i3=9;i3+) for(i2=0;

36、i2=9;i2+) for(i2=0;i2=9;i2+) num=27003+i3 num=27003+i3* *100+i2100+i2* *1010 十位、百位可十位、百位可 为为09间数字间数字 的任意组合,的任意组合, 故用嵌套循环故用嵌套循环 关键点分析关键点分析 #include iostream.h#include iostream.h void main()void main() int num;int num; for(int i3=0;i3=9;i3+)for(int i3=0;i3=9;i3+) for(int i2=0;i2=9;i2+) for(int i2=0;i2

37、=9;i2+) num=27003+i3 num=27003+i3* *100+i2100+i2* *10;10; if(num %67=0 ) if(num %67=0 ) coutnumendl; coutnumendl; 程序实现程序实现 筛选出符合筛选出符合 条件的答案条件的答案 什么是顺序结构?顺序结构是语句的简单罗列吗?什么是顺序结构?顺序结构是语句的简单罗列吗? 什么是选择结构?有几种语句形式?什么是选择结构?有几种语句形式? if语句有几种分支形式?每种形式的作用是什么?语句有几种分支形式?每种形式的作用是什么? 什么是什么是if语句的嵌套形式?如何理解嵌套形式的语语句的嵌套形

38、式?如何理解嵌套形式的语 义关系?义关系? 在选择结构中如何正确使用复合语句?在选择结构中如何正确使用复合语句? 本单元知识要点小结本单元知识要点小结 什么是循环结构?何时使用循环语句?什么是循环结构?何时使用循环语句? 循环语句有几种表达方式?执行机理有何不同?循环语句有几种表达方式?执行机理有何不同? 最适合描述什么情况?最适合描述什么情况? 循环条件和循环体如何确定?循环条件和循环体如何确定? 在循环结构中如何正确使用复合语句?在循环结构中如何正确使用复合语句? 循环语句中循环语句中break语句的作用是什么?语句的作用是什么? 什么是嵌套的循环?如何确定多重循环中内外循什么是嵌套的循环

39、?如何确定多重循环中内外循 环的循环体?环的循环体? 本单元知识要点小结本单元知识要点小结 补充 1、利用二重循环显示如下图所示的字符利用二重循环显示如下图所示的字符图形图形: 提示:方法如下:提示:方法如下: 从字符图形中发现规律确定二重循环的初值和终值。从字符图形中发现规律确定二重循环的初值和终值。 外循环体要做三件事:先决定每行起始空格数;然后通过外循环体要做三件事:先决定每行起始空格数;然后通过 内循环输出每行的字符数;最后换行。内循环输出每行的字符数;最后换行。 要输出字符图形,可通过表达式要输出字符图形,可通过表达式“c=i+A”,使得字符,使得字符 变量变量c获得随整型变量获得随整型变量i而变化的字母。而变化的字母。 补充 #include iostream.h #include iomanip.h void main() int i,j; for(i=1;i=9;i+) coutsetw(11-i); for(j=1;j=2*i-1;j+) couti; cout=1;i-) coutsetw(10-i) ; c=9-i+A; for(j

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论