循环结构程序小结.ppt
0102/*十进制数n转换为二进制数输出*/给定一个十进制整数n,编写程序计算其二进制表示形式并输出。while(n!=0){printf(%d,n%2);n=n/2;}(43)10=(101011)2十进制整数转换为二进制整数换零钱已知有10元、5元、2元、1元等零币,现需将一张100元大钞换零,问:有几种换法?如何换?解:设i、j、k、l分别代表100元零钞中10元、5元、2元、1元币的数量,根据题意列方程:根据题意可知,i、j、k、l的范围分别为:0~10、0~20、0~50、0~100,那么,最简单的解题方法是:穷举i、j、k、l每一种可能的取值组合,直接代入方程,若满足该方程则是一个解。这样即可得到问题的全部解。换零钱(续)换零钱(续)for(i=0;i=10;i++){}main(){inti,j,k,l;/*i、j、k、l分别表示10元、5元、2元、1元币的数目*/}for(j=0;j=20;j++){}for(k=0;k=50;k++){}for(l=0;l=100;l++){if(10*i+5*j+2*k+l==100)printf(%d%d%d%d\n,i,j,k,l);}ProgramminginC西安电子科技大学计算机学院-SchoolofComputerScienceEngineering,XidianUniversity,China*ProgramminginC西安电子科技大学计算机学院-SchoolofComputerScienceEngineering,XidianUniversity,China*自增、自减运算符自增、自减运算符的作用是使变量的值增1或减1自增运算符:++i++等价于i=i+1或i+=1++i等价于i=i+1或i+=1自减运算符:--i++或++i5i5i6i--或--i5i5i4自增、自减运算符的使用j=++i1i2i自增、自减运算符的使用例如:若i的值为1表达式“j=++i”的值是什么?表达式“j=i++”的值是什么?2jj=i++1i2i1j自增、自减运算符的使用a++*b得63a自增、自减运算符的使用例如:inta=3,b=2,c;执行“c=++a*b”之后a、b、c的值?执行“c=a++*b”之后a、b、c的值?2bc4a2b8c4a2b6c++a*b得8例如:若i的值为1,j的值为2,表达式“i+++j”的值是什么?01例如:若i的初值为1,i+++i+++i++等于多少?02表达式中过度使用自增、自减运算符会带来副作用,容易产生歧义自增、自减运算符的副作用循环计算过程的要点处理循环计算需要明确的三个问题:循环体:哪些运算(动作)是需要重复进行的。循环条件:重复这些运算的条件是什么,即在什么情况下终止/继续这个重复的过程。循环准备:在进行重复的运算处理之前,需要进行的初始处理是什么。剩下的问题就是选用合适的语句表达一个循环计算过程了阅读程序加密:将消息中每个字母变成其后的第四个字母,即’A’变成’E’,’a’变成’e’,最后的‘W’变成’A’,’X’变成‘B’。#includestdio.hmain(){charc;while((c=getchar())!=\n){if((c=ac=z)||(c=Ac=Z)){c=c+4; if(cZc=Z+4||cz) c=c-26;}printf(%c,c);}}阅读程序-1#includestdio.h#includestdlib.hintmain(){inti,n=1;for(i