文档详情

控制结构(有动画).ppt

发布:2017-06-04约1万字共56页下载文档
文本预览下载声明
#include iostream.h void main( ) { int i(1),s(0); while(i100) { s=s+i; i=i+2; } couts=sendl; } 程序实现(for语句) #include iostream.h void main( ) { int i,s(0); for(i=1; i100; i=i+2) s=s+i; couts=sendl; } 循环条件 循环变量增量控制 循环变量赋初值 注意:两个分号分隔三个表达式 do 语句 while (表达式); 先执行后判断的循环语句(循环体至少执行1次) ?如何用do_while语句实现累加和 do-while循环 循环体(1条语句) 循环条件(非0时执行循环体) 【例6】猜数游戏。计算机随机产生一个0~100之间的整数,用户通过输入的方式来猜测此数,根据比较的结果屏幕上会给出“大了”或“小了”的提示,根据提示重新猜测,直到猜对提示“恭喜你!猜对了” 要点: ?如何产生0~m之间的随机整数 rand( )%(m+1) ?循环条件 guess!=result do-while循环示例 需包含头文件stdlib.h m~n之间呢? cinguess; if(guessresult) cout“too big”; else if(guessresult) cout“too small”; 循环体 语句类型 因要先输入一个猜测的数与计算机产生的数做相等与否的判断,所以适合选择do-while语句。 要点分析 #include iostream.h #include stdlib.h void main() { int guess,result; cout产生随机数endl; result=rand()%101; do { cout输入猜测的数:endl; cinguess; if(guessresult) couttoo big; else if(guessresult) couttoo small; }while(guess!=result); cout恭喜你,猜对了!endl; } 语句结尾有分号 程序实现 ?如果限定最多只能猜5次程序如何修改 【例7】将可打印的ASCII码制成表格输出,使每个 字符与其编码值对应,每行打印7个字符。 ?忘记某个字符的ASCII码怎么办 要点: ?字符与整型数据如何转换 字符在内存中以ASCII码形式存储 字符与整型数据间可相互赋值 ?如何控制每行打印7个字符 满足i%7==0时,输出换行 ?可打印字符有哪些 int a=‘c’ char c=97 ASCII码在32~126之间的字符 程序实现 #include iostream.h void main() { int i(0),ascii; char c; cout\t\t\tASCII码对照表endl; for(ascii=32;ascii=126;ascii++) { c=ascii; coutc=ascii\t; i++; if (i % 7==0) coutendl; } coutendl; } 循环次数已知时最适合用for循环 【例8】输入某班若干学生的成绩,求最高分。当 输入成绩为-1时表示输入结束。 要点: ?最大值初值如何设置 数据范围已知: 初值被假设为一个小于最小数的数据 数据范围未知: 初值被假设为第一个数的值 xmax=-100 cinx; xmax=x 程序实现 #include iostream.h void main() { int x,xmax; cinx; xmax=x; while(x!=-1) { if(xxmax) xmax=x; cinx; } cout最大值=xmaxendl; } 单独输入第一个数为第一次判循环条件做准备 输入结束数据为-1 【例9】输入两自然数,利用辗转相除法求其最大公约数。 要点: m%n若为0,则n为最大公约数 m%n若不为0,则由n和m%n组成新数对继续求余直到余数为0 ?如何确保输入两自然数 ?一定要求mn吗 m n r
显示全部
相似文档