书签 分享 收藏 举报 版权申诉 / 51
上传文档赚钱

类型第六章循环体程序设计课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4960544
  • 上传时间:2023-01-28
  • 格式:PPT
  • 页数:51
  • 大小:540KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第六章循环体程序设计课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    第六 循环体 程序设计 课件
    资源描述:

    1、第 2 2 页l提出问题提出问题提问:提问:打印打印10行行“*”,怎么编程?,怎么编程?回答:回答:写写10个个printf(“*”);语句。语句。提问:提问:打印打印500行,怎么编程?行,怎么编程?回答:回答:这个,嗯这个,嗯?不会让我写不会让我写500个个.注意:注意:让我们换一个角度来看待这些问题,让我们换一个角度来看待这些问题,以上问题实质是:将以上问题实质是:将printfprintf函数重复执行函数重复执行N N遍。遍。printf(“*”);第 3 3 页l循环循环 反复执行同一段程序,直到满足反复执行同一段程序,直到满足一定的条件后才停止执行该段程序。一定的条件后才停止执行

    2、该段程序。lC语言中控制循环的语句:语言中控制循环的语句:while do-while do-while for for第 4 4 页lwhile语句格式语句格式while(while(表达式表达式 )语句语句;说明:语句说明:语句部分可以是部分可以是简单语句简单语句,也可,也可以是以是复合语句复合语句。lwhilewhile语句的执行流程语句的执行流程表达式表达式?执行语句语句成立成立不成立不成立执行while循环之后的语句循环控制条件循环控制条件循环体循环体第 5 5 页l例例:从键盘输入从键盘输入1010个整数,求这个整数,求这1010个整数的和。个整数的和。#include#inclu

    3、de main()main()int count,num,total;int count,num,total;/*count:count:计数器,计数器,num:num:输入的整数输入的整数 */count=0;count=0;total=0;total=0;/*total:total:存放累加和存放累加和 */while while(count10count10)/*循环控制条件循环控制条件 */count+;count+;/*循环体循环体 */printf(Enter the No.%d=,count);printf(Enter the No.%d=,count);scanf(%d,&nu

    4、m);scanf(%d,&num);total+=num;total+=num;/*计算累加和计算累加和 */printf(Total=%dn,total);printf(Total=%dn,total);第 6 6 页l例:例:分析程序的运行结果分析程序的运行结果#include#include main()main()int n=0;int n=0;while(n3)while(n3)printf(printf(”n is%dnn is%dn”,n);,n);n+;n+;printf(printf(”Thats all this program Thats all this program

    5、 does.ndoes.n”););结果:结果:程序将不停的打印程序将不停的打印“n is 0”,直至终止程序,直至终止程序l无法正常终止的程序,称为无法正常终止的程序,称为“死循环死循环”。结论:结论:在在while语句语句循环体循环体中,一定要有能够中,一定要有能够对循环控制对循环控制条件产生影响的语句条件产生影响的语句。避免出现。避免出现“死循环死循环”现象。现象。第 7 7 页l例例1:分析下列程序段分析下列程序段 index=1;index=1;while(while(index index 5)5)printf(printf(”Good morning!nGood morning!

    6、n”););分析:分析:程序段将无限制打印字符串。因为循环中没有任何程序段将无限制打印字符串。因为循环中没有任何语句可以改变循环控制变量语句可以改变循环控制变量index的初值的初值1l例例2:分析下列程序段分析下列程序段 index=1;index=1;while(while(-index index 5)5)printf(printf(”Good morning!nGood morning!n”););分析:分析:仍有问题,程序改变了仍有问题,程序改变了index的值,但方向错了。的值,但方向错了。在在index达到系统能够处理的最大负数时,将会产达到系统能够处理的最大负数时,将会产生下溢

    7、而终止程序。生下溢而终止程序。结论:结论:循环体中必须有能够使循环循环体中必须有能够使循环正常停止正常停止的条件。的条件。第 8 8 页l【例【例6.16.1】求】求1001nnmainmain()()int i int i,sumsum0;0;i=1 i=1;whilewhile(i i100100)sum=sum+i sum=sum+i;i=i+1i=i+1;printf printf(“d”d”,sumsum););第 9 9 页l【例【例6.26.2】求前】求前n n个数的平方的和:个数的平方的和:n1i2i根据上例写出程序如下:根据上例写出程序如下:mainmain()()int i

    8、=1 int i=1,sum=0sum=0,n n;scanf(“%d”,&n)scanf(“%d”,&n);whilewhile(i=ni=n)sum=sum+i sum=sum+i*i i;i+i+;printf printf(“i=%d,n=%d,sum=%dn”i=%d,n=%d,sum=%dn”,i,n,sumi,n,sum););第 1010 页 该例也可以写成如下:该例也可以写成如下:mainmain()()int i=1 int i=1,sumsum0 0,n n;scanf(“%d”,&n)scanf(“%d”,&n);whilewhile(n n)sum=sum+n sum

    9、=sum+n*n n;n-n-;printf printf(“i=%d,n=%d,sum=%dn”i=%d,n=%d,sum=%dn”,i,n,sumi,n,sum););第 1111 页l【例【例6.36.3】将输入的字符原样输出,以】将输入的字符原样输出,以“#”#”号结束。号结束。#include#include main()main()char c char c;c=getchar()c=getchar();while(c!=#)while(c!=#)putchar putchar(c c););c=getchar()c=getchar();第 1212 页上述程序也可以写为:上述程序

    10、也可以写为:#include“stdio.h”#include“stdio.h”main()main()char c char c;while(c=getchar()!=#)while(c=getchar()!=#)putchar putchar(c c););第 1313 页【例【例6.46.4】统计从键盘输入的以】统计从键盘输入的以nn结束的字符中英文结束的字符中英文字母的个数。字母的个数。#include#include main()main()int n=0;int n=0;char c;char c;while(c=getchar()!=n)while(c=getchar()!=n)

    11、if(c=a&c=A&c=a&c=A&c=Z)n+;n+;printf(%dn,n);printf(%dn,n);Ab2!Ab2!*ABAB 4 4第 1414 页lwhile使用注意使用注意 1.while(1.while(0 0).).由于循环的条件表达式恒由于循环的条件表达式恒等于等于0 0,循环体永远也不会执行。,循环体永远也不会执行。2.while(2.while(1 1).).由于循环的条件表达式恒由于循环的条件表达式恒等于等于1 1,所以不可能通过循环控制条件来结束循环体,所以不可能通过循环控制条件来结束循环体的执行,称为的执行,称为“死循环死循环”。3.3.为了保证循环正常运行

    12、,应该特别注意:为了保证循环正常运行,应该特别注意:循环控制条件循环控制条件 控制条件的初始状态(初始值)控制条件的初始状态(初始值)循环体内部对控制条件的影响循环体内部对控制条件的影响第 1515 页ldo-while语句格式语句格式 dodo 语句语句 while (while (表达式表达式 );ldo-whiledo-while语句的执行流程语句的执行流程表达式表达式?执行语句语句成立成立不成立不成立执行while子句之后的语句循环控制条件循环控制条件循环体循环体第 1616 页ldo-while语句特点语句特点do-whiledo-while与与whilewhile的最大区别:的最大

    13、区别:do-whiledo-while语句语句先执行循环体先执行循环体然后然后再判断再判断循环循环控制条件控制条件,而,而whilewhile却是先判断条件之后再执却是先判断条件之后再执行循环体。行循环体。使用使用do-whiledo-while构成的循环,循环体构成的循环,循环体至少要执至少要执行一次行一次;而采用;而采用whilewhile构成的循环,循环体有构成的循环,循环体有可能一次也不会执行。可能一次也不会执行。第 1717 页l【例【例6.66.6】用】用do-whiledo-while语句求语句求1001nnmain()main()int i,sum=0;int i,sum=0;

    14、i=1;i=1;do do sum=sum+i;sum=sum+i;i+;i+;while(i=100);while(i=100);printf(“%d”,sum);printf(“%d”,sum);第 1818 页/*ex4-11-1.cex4-11-1.c*/#include#include main()main()int i,sum=0;int i,sum=0;scanf(%d,&i);scanf(%d,&i);do do sum+=i;sum+=i;i+;i+;while(i=10);while(i=10);printf(“sum=%d,sum);printf(“sum=%d,sum)

    15、;/*ex4-11-2.c ex4-11-2.c*/#include#include main()main()int i,sum=0;int i,sum=0;scanf(%d,&i);scanf(%d,&i);while(i=10)while(i=10)sum+=i;sum+=i;i+;i+;printf(“sum=%d,sum);printf(“sum=%d,sum);1 sum=55sum=551 sum=55sum=5511 sum=11sum=1111 sum=0sum=0第 1919 页【例【例6.86.8】输入一个整数,计算它的位数】输入一个整数,计算它的位数.并反向并反向输出输出

    16、.main()main()long num long num;int count=0int count=0;printf(“printf(“输入一个整数:输入一个整数:”);scanf(“%ld”scanf(“%ld”,&num)&num);do printf(“%d”do printf(“%d”,num%10)num%10);num=num/10num=num/10;count+count+;while(num)while(num);printf(“printf(“该整数是该整数是%d%d 位数位数.”,count).”,count);第 2020 页lfor语句格式语句格式for(for(

    17、表达式表达式1 1;表达式表达式2 2;表达式表达式3 3)语句;语句;lforfor语句的执行流程语句的执行流程循环初始条件循环初始条件循环控制条件循环控制条件表达式表达式2?执行语句语句成立成立不成立不成立执行for循环之后的语句执行表达式表达式3执行表达式表达式1循环体循环体forfor语句等价于下列语句:语句等价于下列语句:表达式表达式1 1;while while(表达式表达式2 2)语句语句;表达式表达式3 3;第 2121 页l例:例:求一个数的阶乘。求一个数的阶乘。#include#include main()main()long int jc=1;long int jc=1;

    18、int i,n;int i,n;scanf(“%d”,&n);scanf(“%d”,&n);forfor (i=1i=1;i=ni=n;i+i+)jc=jc jc=jc*i;i;printf(%d!=%ldn,n,jc);printf(%d!=%ldn,n,jc);lforfor语句最常用的形式语句最常用的形式for for(初值初值;控制条件控制条件;增量增量)语句;语句;3 3 3!=6=6第 2222 页lforfor语句的变化形式语句的变化形式forfor语句中的三个表达式中的任意一个都是可以省略语句中的三个表达式中的任意一个都是可以省略的,但是的,但是分号分号不能省略。不能省略。1.

    19、1.省略表达式省略表达式2 2,则:,则:forfor(表达式(表达式1 1;表达式;表达式3 3)就形成了一个就形成了一个死循环死循环。2.2.省略表达式省略表达式1 1和表达式和表达式3 3,则:,则:forfor(;表达式(;表达式2 2;);)就等同于:就等同于:whilewhile(表达式表达式 )据此结论:所有用据此结论:所有用whilewhile语句实现的循环都可以用语句实现的循环都可以用forfor语句实现。语句实现。3.3.表达式表达式1 1、2 2、3 3全省略全省略,则:,则:forfor (;)(;)就等同于:就等同于:whilewhile (1)(1)第 2323 页

    20、【例【例6.96.9】输入】输入2020个个0 09 9的数字字符,计算有多少奇数,偶数和零。的数字字符,计算有多少奇数,偶数和零。#define M 20main()int i,k,n1=0,n2=0,n3=0;char ch;printf(“输入数字字符输入数字字符20个:个:n”);for(k=1;k=M;k+)scanf(“%c”,&ch);i=ch-0;if(i=0)n3+;/*零零*/else if(i%2=0)n1+;/*偶数偶数*/else n2+;/*奇数奇数*/printf(“有有%2d 个偶数个偶数,%2d 个奇数个奇数,%2d 个零个零”,n1,n2,n3);第 242

    21、4 页外层循环可包含两个以上内循环,但不能相互交叉l循环的嵌套循环的嵌套三种循环可互相嵌套三种循环可互相嵌套,层数不限层数不限内循环内循环外循环外循环相互交叉相互交叉的嵌套的嵌套第 2525 页的嵌套的嵌套【例【例6.23】打印九九表。】打印九九表。main()main()int i,j;int i,j;for(i=1;i10;i+)for(i=1;i10;i+)for(j=1;j=i;j+)for(j=1;j=i;j+)printf(%d printf(%d*%d=%dt,j,i,i%d=%dt,j,i,i*j);j);printf(n);printf(n);第 2626 页的嵌套的嵌套【例

    22、【例6.106.10】写出运行结果。】写出运行结果。main()main()int i,j,k;int i,j,k;printf(i j kn);printf(i j kn);for(i=0;i2;i+)for(i=0;i2;i+)for(j=0;j2;j+)for(j=0;j2;j+)for(k=0;k2;k+)for(k=0;k=100;j-)(j=999;j=100;j-)if if(n%j(n%j=0)/0)/*若能够整除若能够整除j j,则,则j j是约数是约数 */printf(”3 digits in%ld=%dn”,n,j);printf(”3 digits in%ld=%dn

    23、”,n,j);breakbreak;/;/*控制退出循环控制退出循环 */第 3333 页【例【例6.11】求面积不大于】求面积不大于100的半径为自然数的圆面积。的半径为自然数的圆面积。r=1,area=3.14r=1,area=3.14r=2,area=12.57r=2,area=12.57r=3,area=28.27r=3,area=28.27r=4,area=50.27r=4,area=50.27r=5,area=78.54r=5,area=78.54第 3434 页lbreakbreak语句使用注意:语句使用注意:1 1、在嵌套循环中,、在嵌套循环中,breakbreak语句仅能退出

    24、一层语句仅能退出一层(当前当前)循环。循环。2 2、若在循环语句中包含了、若在循环语句中包含了switchswitch语句,那么语句,那么switchswitch语句中的语句中的breakbreak语句仅能使控制退出语句仅能使控制退出switchswitch语句。语句。3 3、breakbreak语句并不是程序设计中必不可少的语句,语句并不是程序设计中必不可少的语句,可以通过改变程序的结构去掉。可以通过改变程序的结构去掉。第 3535 页lcontinue语句格式语句格式continuecontinue;lcontinuecontinue语句的功能语句的功能 continuecontinue语

    25、句仅能在循环语句中使用语句仅能在循环语句中使用.它的作用不是结束循环,而是开始一次新的循环。它的作用不是结束循环,而是开始一次新的循环。对于对于forfor语句,将控制转到语句,将控制转到执行表达式执行表达式3 3和和条件测条件测试试部分部分 对于对于whilewhile和和do-whiledo-while语句,将控制转到语句,将控制转到条件测试条件测试部分部分 从逻辑上讲,改变从逻辑上讲,改变ifif语句的条件表达式所表示的条语句的条件表达式所表示的条件,就可以不需要使用件,就可以不需要使用continuecontinue语句。语句。第 3636 页lcontinue语句的执行流程语句的执行

    26、流程表达式2?continue成立成立不成立不成立执行后续语句执行表达式3执行表达式1表达式?continue成立成立不成立不成立执行后续语句表达式?continue成立成立不成立不成立执行后续语句第 3737 页l例:输入例:输入1010个整数,求其中正数的个数及平均值,精确到个整数,求其中正数的个数及平均值,精确到小数点后两位。小数点后两位。main()main()int i,count=0,j,sum=0;int i,count=0,j,sum=0;for for(i=1;i=10;i+)(i=1;i=10;i+)printf(Input integer:);printf(Input i

    27、nteger:);scanf(%d,&j);scanf(%d,&j);ifif(j=0)(j=0)continuecontinue;/*结束本次循环,不进行后续操作结束本次循环,不进行后续操作 */count+;count+;/*计数器计数器 */sum+=j;sum+=j;/*求累加和求累加和 */if if(count)(count)printf(Plus numer:%d,average value:%.2f,printf(Plus numer:%d,average value:%.2f,count,1.0 count,1.0*sum/count);sum/count);elseelse

    28、 printf(Plus numer:0,average value:0);printf(Plus numer:0,average value:0);改变改变ifif语句的语句的条件条件表达式表达式,可以,可以不需不需要使用要使用continuecontinue。第 3838 页【例【例6.126.12】输出输出100200100200之间的不能被之间的不能被3 3整除的数。整除的数。main()main()int n;int n;for(n=100;n=200;n+)for(n=100;n=200;n+)if(n%3=0)if(n%3=0)continue;continue;printf(“

    29、%d”,n);printf(“%d”,n);第 3939 页lgoto语句格式语句格式gotogoto 标号标号;lgotogoto语句的功能语句的功能1 1、将控制转移到标号所指定的语句处继续执行。、将控制转移到标号所指定的语句处继续执行。2 2、标号的唯一功能就是作为、标号的唯一功能就是作为gotogoto语句的目标。标语句的目标。标号的作用域是它所在的整个函数号的作用域是它所在的整个函数,标号必须是合法标号必须是合法的标识符。的标识符。lgotogoto语句的使用说明语句的使用说明在在C C语言中,语言中,gotogoto语句并不是必不可少的,使用语句并不是必不可少的,使用gotogot

    30、o语句的地方都可以用语句的地方都可以用C C的其他控制流程语句改的其他控制流程语句改写。写。第 4040 页/*ex4-8.cex4-8.c*/#include#include main()main()int i,sum=0;int i,sum=0;i=1;i=1;loop:loop:if(i=100)if(i=100)sum+=i;sum+=i;i+;i+;goto loop;goto loop;printf(%d,sum);printf(%d,sum);sum=0+1sum=1+2=3sum=3+3=6sum=6+4sum=4950+100=5050循环初值循环初值循环变量增值循环变量增值

    31、循环条件循环条件例例 用用if 和和goto语句构成循环,求语句构成循环,求循环终值循环终值循环体循环体1001nn第 4141 页lretunrn语句格式语句格式格式一:格式一:returnreturn;格式二:格式二:return(return(表达式);表达式);lreturnreturn语句的功能语句的功能 1.1.returnreturn语句使程序从被调用函数中返回到语句使程序从被调用函数中返回到调用函数的调用处继续运行。调用函数的调用处继续运行。2.2.如果如果returnreturn后跟一表达式,则该表达式的后跟一表达式,则该表达式的值会从被调用函数中带回到调用它的函数,值会从被

    32、调用函数中带回到调用它的函数,称为称为返回值返回值。第 4242 页穷举法穷举法穷举法穷举法例例6.146.14】将】将2 2角钱换成角钱换成1 1分、分、2 2分和分和5 5分的硬币,列出所有可能的分的硬币,列出所有可能的换法。换法。main()main()int x int x,y y,z z,k=0k=0;for(z=0for(z=0;z=4 z=4;z+)z+)for(y=0 for(y=0;y=(20-5y=3n=3)为求出第为求出第N N项的值,请编写程序。项的值,请编写程序。根据递推通项公式,可用根据递推通项公式,可用递推法递推法编写程序,计算第编写程序,计算第N N项的值。项的

    33、值。l递推法递推法:由初始的已知条件开始,由初始的已知条件开始,先计算出第先计算出第(N(N1)1)步的结果,步的结果,再再利用前面已知的利用前面已知的(N(N1)1)项结果,按照递项结果,按照递推公式(或遵照递推规则),推公式(或遵照递推规则),推出第推出第N N步结果步结果。递推法递推法是程序设计中最常用的方法之一,使用递推法是程序设计中最常用的方法之一,使用递推法必须有明确的必须有明确的递推初始值递推初始值和和递推规则递推规则(递推公式)。(递推公式)。第 4444 页 main()main()int n,i,un1,un2,un;int n,i,un1,un2,un;for for(;

    34、)printf(Input n=?);printf(Input n=?);scanf(%d,&n);scanf(%d,&n);ifif(n=3)(n=3)breakbreak;/*退出退出forfor循环循环 */elseelse printf(nInput n is error!n);printf(nInput n is error!n);/*控制输入正确的控制输入正确的N N值值 */un1=un2=1;un1=un2=1;/*设置递推初始值设置递推初始值 */forfor(i=3;i=n;i+)(i=3;i=n;i+)/*用递推法计算第用递推法计算第N N项的值项的值 */un=un1+

    35、un2;un1=un2;un2=un;un=un1+un2;un1=un2;un2=un;printf(No.%d is%dn,n,un);printf(No.%d is%dn,n,un);第 4545 页)3()2(12)1(1112nFFFnFnFnnn例例6.17 求求Fibonacci斐波纳契数列斐波纳契数列 的前的前40个数个数第 4646 页辗转相除法辗转相除法main()main()int x,y,a,b,t;int x,y,a,b,t;printf(printf(输入两个整数输入两个整数x,y:);x,y:);scanf(%d,%d,&x,&y);scanf(%d,%d,&x,

    36、&y);a=x;b=y;/a=x;b=y;/*保存保存x,yx,y以便求它们的最小公倍数以便求它们的最小公倍数 */t=a%b;t=a%b;while(t!=0)/while(t!=0)/*余数不为余数不为0 0,继续相除,直到余数为,继续相除,直到余数为0 0*/a=b;b=t;t=a%b;a=b;b=t;t=a%b;printf(x=%d,y=%d%d,%dn,x,y,b,x printf(x=%d,y=%d%d,%dn,x,y,b,x*y/b);y/b);/*用乘积除以最大公约数得到最小公倍数用乘积除以最大公约数得到最小公倍数*/【例【例6.186.18】求两个整数的最大公约数和最小公倍

    37、数。求两个整数的最大公约数和最小公倍数。第 4747 页【例【例6.19】用】用 公式求公式求 的近的近似值,直到某一项的绝对值小于似值,直到某一项的绝对值小于 为止为止 71513114 610第 4848 页的整数的整数mk 【例【例6.206.20】判断】判断m m是否素数。是否素数。第 4949 页【例【例6.216.21】求】求100100至至200200间的全部素数。间的全部素数。第 5050 页【例【例6.226.22】用循环输出如下图案:】用循环输出如下图案:*main()main()int i,m,n;int i,m,n;for(i=1;i=5;i+)/for(i=1;i=5

    38、;i+)/*行数的控制行数的控制*/for(m=1;m=5-i;m+)for(m=1;m=5-i;m+)printf(“”);/printf(“”);/*空格的控制空格的控制*/for(n=1;n=i;n+)for(n=1;n=i;n+)printf(“printf(“*”);/”);/*输出输出*个数的控制个数的控制*/printf(“n”);/printf(“n”);/*每一行要有回车换行每一行要有回车换行*/第 5151 页【例【例6.24】打印所有】打印所有“水仙花数水仙花数”(三位数:(三位数:153135333)。)。main()int i,ge,shi,bai;for(i=100;i=999;i+)bai=i/100;shi=i/10%10;ge=i%10;if(i=ge*ge*ge+shi*shi*shi+bai*bai*bai)printf(%6d,i);printf(n);

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第六章循环体程序设计课件.ppt
    链接地址:https://www.163wenku.com/p-4960544.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库