一、循环变量为字符型
试编一程序,按字典顺序输出26个字母。
流程图:
思考:先顺序输出26个小写英文字母,再逆序输出26个大写英文字母。
循环可以是递增型循环,也可以是递减型循环。
二、打擂台-for语句的另一种形式
问题:试编一程序,输入10个数,输出其中最大的数。
以前学过,输入三个数求最大值时,先假设第一个数为最大值,把它赋值给max;然后,第二个数和max比较,若比max大,就把第二个数赋值给max;接着,第三个数和max比较,若比max大,就把第三个数赋值给max,有点儿类似打擂台。求10个数中的最大值可以采用同样的方法,如图示。
流程图:
注:C++语言是很灵活的,可以把循环变量赋初值语句写在for循环语句前,也可以把循环变量增值语句写在循环体中。当循环体有多个语句时,就需要用“{}”把它们复合起来,成为一个整体。
三、break语句
问题:试编一程序,输入一个自然数,判断是不是素数。
素数,一个大于1的自然数,除了1和它本身外,不能被其他自然数整除。如2,3,5,7,11,13,17等是素数,4,6,8,9,10,12,14,15等不是素数是合数,而1既不是素数也不是合数。
为了判断某数n是否为素数,一个最简单的办法是用2,3,4,5,·,n-1这些数逐个去除n,看能否除尽。只要能被其中的一个数除尽,n就不是素数,只有n不能被2~n-1之间的所有数除尽时才是素数。流程图如图
注:break 语句是提前结束整个循环过程,不再判断执行循环的条件是否成立。continue语句只是结束本次循环,而不是终止整个循环的执行。
四、数位分离
问题:水仙花素雅端庄,清秀俊逸,香气馥郁。数学上有一种数称为水仙数。所谓水仙花数是一个三位数,它等于自己各个数位上数字的立方和。如153,它百位上的数字是1,十位上的数字是5,个位上的数字是3,13+53+33是153,等于它自己,因此153是水仙花数。
试编一程序,求出所有的水仙花数。
求水仙花数,要先学会分离百位、十位、个位上的数。153/100可以得到百位上的数字,(153/10)%10或(153%100)/10可以得到十位上的数字,153%10可以得到个位上的数字。
水仙花数是一个三位数,可以通过for循环把100~999所有的三位数都枚举出来,然后对每一个数进行计算和判断,若是水仙花数则输出。流程图如下:
可以增加一个计数器变量count,用于统计水仙数的个数。