第六章循环结构程序设计.ppt
文本预览下载声明
* * * * * * * 说明 1、 三种循环语句在处理循环问题时,一般可以相互替代。 2、 对于循环次数固定的问题,用for语句实现比较简单。 3、 对于循环次数不确定的问题,可用while语句或do-while语句实现。 4、 while语句:先判断,后执行。 do-while语句:先执行,后判断。 * 概念 一个循环体内又包含另一个完整的循环结构,称为循环嵌套。 举例 打印乘法口诀表。 #include stdio.h void main() { int i,j; for (j=1;j10;j++) { for (i=1;i=j;i++) printf(“%2d×%2d = % 3d”,i,j,i*j); printf(“\n”); } } for j=1 to 9 输出i*j for i=1 to j 换行 举例(穷举法) 百钱买百鸡。公元5世纪末,我国古代数学家张丘建在他撰写的《算经》中提出了这样一个问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何? 穷举法:针对问题所有的可能一一查看是否符合条件。 * 举例(递推法) “兔子问题”:有一对兔子,从出生后第3个月起,每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,那么在一年之后一共会有多少对兔子?20个月之后又有多少对兔子? 斐波那契数列 找到递推规律 * * 思考1 输入三角形三边,求三角形的面积。 #include stdio.h #include math.h void main() { float a,b,c,s,p; printf(“请输入三角形的三边:); scanf(%f%f%f,a,b,c); p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); printf(三角形面积为:%.2f\n,s); } 考虑输入的三边不构成三角形,应该怎么改? * 思考2 输入三角形三边,求三角形的面积。 #include stdio.h #include math.h void main() { float a,b,c,s,p; printf(请输入三角形得三边:); scanf(%f%f%f,a,b,c); if (a+bca+cbb+ca){ p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); printf(三角形面积为:%.2f\n,s); } else printf(“不构成三角形!”); } 希望求多个三角形的面积,而不是每求一次退出,怎么办? * 思考3 输入三角形三边,求三角形的面积。 #include stdio.h #include math.h void main() { float a,b,c,s,p; do { printf(请输入三角形得三边:); scanf(%f%f%f,a,b,c); if (a+bca+cbb+ca){ p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); printf(三角形面积为:%.2f\n,s); } else printf(“不构成三角形,请重新输入!\n”); }while(1); } 我想退出,怎么办? * #include stdio.h #include math.h void main() { float a,b,c,s,p; char yes_no; do { printf(请输入三角形得三边:); scanf(%f%f%f,a,b,c); if (a+bca+cbb+ca){ p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); printf(三角形面积为:%.2f\n,s); } else printf(不构成三角形,请重新输入!\n); printf(继续吗?(y/n)); scanf(%c,yes_no); if (yes_n
显示全部