1 / 13

第六章

第六章. 循环结构程序设计 (二). 第六章 循环 结构程序设计. 主要内容. 一、循环嵌套 二、循环结构程序设计举例. 第六章 循环 结构程序设计. for i=1 to 4. for j=1 to 4. 输出 i*j. 换行. 一、循环嵌套. 概念. 一个循环体内又包含另一个完整的循环结构,称为循环嵌套。. 举例. 打印乘法口诀表。. 1 2 3 4 2 4 6 8 3 6 9 12 4 8 12 16. #include <stdio.h>

lewis-dixon
Download Presentation

第六章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第六章 循环结构程序设计 (二)

  2. 第六章 循环结构程序设计 主要内容 一、循环嵌套 二、循环结构程序设计举例

  3. 第六章 循环结构程序设计 for i=1 to 4 for j=1 to 4 输出i*j 换行 一、循环嵌套 概念 一个循环体内又包含另一个完整的循环结构,称为循环嵌套。 举例 打印乘法口诀表。 1 2 3 4 2 4 6 8 3 6 9 12 4 8 12 16 #include <stdio.h> void main() { int i,j; for (i=1;i<=4;i++) { for (j=1;j<=4;j++) printf(“%4d”,i*j); printf(“\n”); } } i=1, j=1 1*1 j=2 1*2 j=3 1*3 j=4 1*4 i=2, j=1 2*1 j=2 …… i=3 i=4

  4. 第六章 循环结构程序设计 一、循环嵌套 思考1 1 2 4 3 6 9 4 8 12 16 #include <stdio.h> void main() { int i,j; for (i=1;i<=4;i++) { for (j=1;j<=i;j++) printf(“%4d”,i*j); printf(“\n”); } }

  5. 第六章 循环结构程序设计 一、循环嵌套 思考2 #include <stdio.h> void main() { int i,j; for (i=1;i<=4;i++) { for (j=1;j<=5-i;j++) printf(“%4d”,i*j); printf(“\n”); } } 1 2 3 4 2 4 6 3 6 4

  6. 第六章 循环结构程序设计 一、循环嵌套 思考3 #include <stdio.h> void main() { int i,j; for (i=1;i<=4;i++) { for (j=1;j<=4-i;j++) printf(“%4d”,’ ‘); for (j=5-i;j<=4;j++) printf(“%4d”,i*j); printf(“\n”); } } 4 6 8 6 9 12 4 8 12 16

  7. 第六章 循环结构程序设计 一、循环嵌套 思考4 1 2 3 4 4 6 8 9 12 16 #include <stdio.h> void main() { int i,j; for (i=1;i<=4;i++) { for (j=1;j<=i-1;j++) printf(“%4d”,’ ‘); for (j=i;j<=4;j++) printf(“%4d”,i*j); printf(“\n”); } }

  8. 思考:使用那一种循环控制语句? 第六章 循环结构程序设计 二、程序举例 例1 利用公式:/4=1-1/3+1/5-1/7+… 求的近似值,直到某一项的绝对值小于10-6为止。 #include <stdio.h> #include <math.h> void main() { int s; float n,t,pi; t=1;pi=0;n=1.0;s=1; while((fabs(t))>1e-6) {pi=pi+t; n=n+2; s=-s; t=s/n;} pi=pi*4; printf("pi=%10.6f\n",pi); } pi=1-1/3+… 输出4* pi s=1(-1) n=1,3,5,7… t=s/n

  9. 第六章 循环结构程序设计 二、程序举例 P116 #include <stdio.h> void main() { long int f1,f2; int i; f1=1;f2=1; for(i=1;i<=20;i++) { printf("%12ld%12ld",f1,f2); if(i%2==0) printf("\n"); f1=f1+f2; f2=f2+f1; } } 1 1 2 3 5 8 13 21 34 55 89 144 … … 例2 求Fibonacci数列的前40个数。 特点:第1、2个数为1、1。从第三个数开始,该数是其前面两个数之和。 F1=1 (n=1) F2=2 (n=2) Fn=Fn-1+Fn-2 (n>=3)

  10. 第六章 循环结构程序设计 二、程序举例 例3 判断m是否为素数。 素数(质数): 只能被1和它本身整除的数。 判别方法: 57:若2~56之间的每一个数都除不开56,则56为素数,否则56不是素数。 m, k=m-1,i=2~k : 若每一个 i 的值都除不开m,则m为素数,否则m不是素数。 k=m-1; k=[m/2];[(m+1)/2]; k=[sqrt(m)];[sqrt(m+1)] flag=1; k=m-1; for (i=2;i<=k;i++) if (m%i=0) flag=0; if (flag==1) printf(“yes!”); else printf(“no!”); k=m-1; for (i=2;i<=k;i++) if (m%i=0) break; if (i>=k+1) printf(“yes!”); else printf(“no!”);

  11. 第六章 循环结构程序设计 for m=101 to 200 ①判断m是否为素数 ②若m是素数,则输出并统计个数n. ③每输出10个素数,换行 二、程序举例 例3 输出 101~200之间的全部素数。 #include <stdio.h> #include <math.h> void main() { int m,k,i,n=0; for(m=101;m<=200;m=m+2) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0) break; if(i>=k+1) { printf("%d ",m); n=n+1; } if(n%10==0) printf("\n"); } printf("\n"); }

  12. 第六章 循环结构程序设计 二、程序举例 例4 译密码。输入一行字符,输出其相应的密码。(119页) 译码规律:将字母变成其后的第4个字母,非字母字符不变。 #include <stdio.h> void main() { char c; while((c=getchar())!='\n') { if((c>'a'&&c<='z')||(c>'A'&&c<='Z')) { c=c+4; if((c>'Z'&&c<='Z'+4)||c>'z') c=c-26; } printf("%c\n",c); } }

  13. 第六章 循环结构程序设计 作业 P120: 6.4, 6.8, 6.6, 6.11

More Related