高中信息竞赛-循环语句.ppt_第1页
高中信息竞赛-循环语句.ppt_第2页
高中信息竞赛-循环语句.ppt_第3页
高中信息竞赛-循环语句.ppt_第4页
高中信息竞赛-循环语句.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

【练习试题】剪刀、石头、布游戏 【问题描述】编程模拟剪刀、石头、布游戏:用S表示剪刀,用R表示石头,用P表示布。规则是:剪刀剪布,石头砸剪刀,布包石头。游戏者甲乙分别把自己的选择输入,计算机给出结果。 【文件输入】输入甲乙两个人分别出的结果 【文件输出】输出结果,若甲获得胜利输出“Win“,平局输出“Equ“,否则输出“Fall“ 【样例输入】S R 【样例输出】Fall,练一练,#include using namespace std; int main() char a,b; cinab; if(a=R ,程序代码,#include using namespace std; int main() char n,m; long s; cinnm; if(n=m) cout“Equ“; else s=n-m; if(s=3|s=-1|s=-2) cout“Win“; else cout“Fall“; system(“pause”); return 0; ,程序代码,循环语句,循环结构是三大程序结构之一,是C+逻辑编程的重点内容。顺序结构、选择结构只解决简单问题,是程序设计的基础,而循环结构则是程序设计的实际应用。顾名思义,所谓循环,是指某些语句由于需要被反复执行的现象。 【主要内容】 三种循环语句(for、while、do-while)的格式和执行过程。,例如,输出10个“*”,可用如下语句即可完成: cout “*”; 但如果要输出1000个“*”,再套用上行的写法就不现实了! 解决办法是: 输出一个“*”,即cout “*”;重复1000次。,#include using namespace std; int main() long i; for ( i = 1; i =1000 ; i+ ) cout “*“ ; system(“pause”); return 0; ,for语句,for(表达式1;表达式2;表达式3) 语句组1(循环体) 语句组2,for(循环变量赋初值;循环结束条件;循环变量增值),例题:求 1+2+3+100,0,1,1,2,真,3,3,真,6,4,真,10,5,真,真,100,真,101,真,5050,假,sum5050,1,2,3,3,6,4,100,5050,101,循环结束!,实际上是将i不停地累加到一起,int main( ) long i, sum=0; /定义变量,初始化 for (i=1; i=100; i+) /for结构 sum=sum+i; / 循环体,多次执行 cout“sum=”sumendl; ,1. for 先判断条件而后执行循环体,即有可能循环体一次也不被执行。如下语句中循环体s=s+x一次也不被执行: for ( x = 10; x 0; x+ ) s = s + x; 2.循环变量的数据类型为:整型long 3. for 适宜循环次数或条件特别明显的情况。 4. for中三个表达式间只能用分号相隔,且即使三个表达式省略时,分号也不可省略。 5.当循环语句超过一条语句时,要用 将语句组合在一起,构成复合语句。 6. for中三个表达式,可以为多条语句。,注意事项,练习1:求 S=2+4+100 练习2:求 S=1/1+1/2+1/3+1/100,模拟练习,int main( ) long i, sum=0; for (i=1; i=50; i+) sum=sum+2*i; coutsumendl; ,int main( ) long i; double sum=0; for (i=1; i=100; i+) sum=sum+(double)1/i; coutsumendl; ,int main( ) char i, j ; for (i=a,j=z ; ij ; i+, j-) coutij; coutendl; ,输出:azbycx.lomn,a,z,真,az,b,y,真,by,c,x,真,cx,真,.,真,.,m,n,mn,n,m,假,CR,以下循环结果如何? for ( i=0, k= -1; k=1; i+, k+) cout“*n”;,以下循环最多执行_次,最少执行_次 for (i=0, x=0; ix;,10,1,例题:计算n的阶乘,如10!,10!=1*2*3*10。,#include using namespace std; int main() long i,n,sum=1; cinn; for ( i = 1; i =n; i+ ) sum=sum* i; coutsum endl; system(“pause”); return 0; ,while语句,while ( 表达式) 语句组,a=3; while(a20) a=a+5; cout“a=“a;,当循环语句超过一条时,要用 将语句组组合在一起。,求 1+2+3+100,int main( ) long i=1,sum=0; /定义变量,初始化 while(i=100) /构造循环 sum=sum+i; / 循环体,多次执行 i=i+1; cout“sum=”sumendl; /输出结果 ,0,1,1,2,真,3,3,真,6,4,真,10,5,真,真,100,真,101,真,5050,假,sum5050,1,2,3,3,6,4,100,5050,101,循环结束!,实际上是将i不停地累加到一起,1.循环体如果为一个以上的语句,用 括起。 2.循环体内或表达式中必须有使循环结束的条件,即一定有一个循环变量。 3.while 先判断条件后执行循环体,即有可能循环体一次也不被执行。 4. while 适宜结束条件特别明显的情况。,注意事项,k=2; while(k!=0) coutk;k-; coutendl;,输出:21,2,真,2,1,真,1,0,假,回车,看程序写结果,int main( ) int num=0; while(num=2) num+; coutnumendl; ,1 2 3,0,真,1,1,真,2,2,真,3,3,假,无,看程序写结果,例题:统计a的个数 (1144) Description 输入若干个字符,它的终止符是#,计算输入的字符中字母a出现的次数(包括大小写)。 Input 输入若干个字符,以#结束 Output 字母a出现的次数 Sample Input huang# Sample Output 1,#include using namespace std; int main() char ch; long s=0; cinch; while (ch!=#) if (ch=a)|(ch=A) s=s+1; cinch; coutsendl; system(“pause”); return 0; ,dowhile语句,do 语句组 while(表达式);,求 1+2+3+100,int main( ) int i=1,sum=0; /定义变量,初始化 do /构造循环 sum=sum+i; / 循环体,多次执行 i=i+1; while (i=100); cout“sum=”sumendl; /输出结果 ,Description 键入一个自然数x(x10000),求这个自然数的所有约数之和s。 Input 键入一个自然数x Output 这个自然数的所有约数之和 Sample Input Sample Output 12,练习试题1142,Description 求两个自然数m,n的最小公倍数。 Input 输入两个自然数m,n(m,n10000) Output 输出最小公倍数 Sample Input 16 24 Sample Output 48,练习试题1146,Description 数学上把除了1和它本身,没有别的数能够整除它的自然数叫做素数(或质数)。现在由键盘输

温馨提示

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

评论

0/150

提交评论