课前作业•1.输入10个数,编程分别统计输入的奇数、偶数的个数•2.输入以-1为终止标记的一批数,编程分别统计输入的奇数、偶数的个数一、break语句break语句用于循环语句和switch语句。作用:提前结束循环,从循环体内跳出,接着执行循环后面的语句;§4.3.4break语句和continue语句二、continue语句作用:结束本次循环,即跳过循环体中下面尚未执行的语句,接着对循环条件进行判断。for(i=1;i=5;i++){if(i==3)continue;printf(%d\n,i);}1245break;12举例例.任意输入10个整数,求其中负数的和。P32页编程题5main(){intx,s=0,i;for(i=1;i=10;i++){scanf(“%d”,&x)if(x0)s=s+x;}printf(%d\n,s);}main(){intx,s=0,i;for(i=1;i=10;i++){scanf(“%d”,&x)if(x=0)continue;s=s+x;}printf(%d\n,s);}§4.3.5程序举例例1:找出1~1000之间的全部同构数。#includemath.hmain(){intm,s=1;longi;for(i=1;i=1000;i++){m=i;s=1;do{m=m/10;s=s*10;}while(m!=0);if(i==i*i%s)printf(%5d,i);}}例2、找出10~1200之间各个位数字之和能被5整除的所有数,要求每行打印10个数。main(){inti,m,s,k=0;for(i=10;i=1200;i++){m=i;s=0;do{s=s+m%10;m=m/10;}while(m0);if(s%5==0){printf(%5d,i);k++;if(k%10==0)printf(\n);}}}main(){longf1,f2;inti;f1=1;f2=1;printf(%12ld%12ld,f1,f2);for(i=2;i=20;i++){f1=f1+f2;f2=f1+f2;printf(%12ld%12ld,f1,f2);if(i%2==0)printf(\n);}}例3输出Fibonacci数列前40个数。P30页程序改错题例4.用Fibonacci数列中的数据构成以下的新数列,求该数列的第20项main(){intf1,f2,f3;floatt;f1=f2=1;for(i=1;i=20;i++){f3=f1+f2;t=1.0*f3/f2;f1=f2;f2=f3;}printf(%f\n,t);},.......813,58,35,23,12例4.用Fibonacci数列中的数据构成以下的新数列,求该数列前20项和。P30页第5题,s=0;s=s+t;s);例5.Fibonacci数列的前一项和后项比值趋于一个常数,求该常数,误差小于10-5。P108页编程题第3题#include“math.h”main(){intf1,f2,f3;floatt1,t2;f1=f2=1;do{t1=1.0*f1/f2;f3=f1+f2;t2=1.0*f2/f3;f1=f2;f2=f3;}while(fabs(t1-t2)=1e-5);printf(%f\n,t2);}例6:使用71513114求п的值,要求误差10-4分析:•变量定义:s(累加和),t(累加项),i(循环变量),p(符号位)•循环条件:fabs(t)=1e-4•循环体#includemath.hmain(){inti=1,p=1;floats=0,t=1,pi;while(fabs(t)=1e-4){s=s+t;i++;p=-p;t=p*1.0/(2*i-1);}pi=4*s;printf(pi=%f\n,pi);}P26页.1计算n!,求出小于32000的最大的值,并求出此时n的值。main(){inti=1;longm=1;while(m*i32000){m=m*i;i++;}printf(%ld,%d\n,m,i-1);}main(){inti=1;longm=1;while(m32000){i++;m=m*i;}printf(%ld,%d\n,m/i,i-1);}P26页.2通过下面的表达式计算π的值,误差不大于10-5。1273523173523152313112iimain(){inti=0;floats=0,t=1;do{s=s+t;i++;t=t*i/(2*i+1);}while(t1e-5);printf(pi=%f\n,2*s);}main(){inti=0;floats=0,t=1;while(t1e-5){s=s+t;i++;t=t*i/(2*i+1);}printf(pi=%f\n,2*s);}P26页.3某单位排队形,开始排成3路纵队,末尾多出了2人;后来改成5路纵队,末尾又多出了3人;最后改成7路纵队,正好没有余数。编程序求出该单位至少有多少人。main(){intx=0;while(!(x%3==2&&x%5==3))x=x+7;printf(x=%d\n,x);}P36页1.计算下式的值。main(){inti,j,s=0;for(i=1;i=8;i++)for(j=2;j=7;j++)s=s+(i+j)*(i-j);printf(“s=%d”,s);}8172)))(((ijjijiP36页2.编程找出1000内的所有完数。main(){inti,j,s;for(i=1;i=1000;i++){s=0;for(j=1;ji;j++)if(i%j==0)s=s+j;if(i==s)printf(%5d,i);}}P36页3.编程求[10000,20000]之间全部素数的和。main(){inti,j;longs=0;for(i=10000;i=20000;i++){for(j=2;ji;j++)if(i%j==0)break;if(j==i)s=s+i;}printf(%ld,s);}P36页4.给定一个整数m(m200),找出小于m的最大的10个素数。main(){inti,j,m,n=0;;scanf(%d,&m);for(i=m-1;i1;i--){for(j=2;ji;j++)if(i%j==0)break;if(j==i){printf(%4d,i);n++;if(n==10)break;}}}P36页5.找规律,编程输出下面的图形。*************************main(){inti,j,k;for(i=1;i=4;i++){for(j=1;j=4-i;j++)printf();for(k=1;k=2*i-1;k++)printf(*);printf(\n);}for(i=1;i=3;i++){for(j=1;j=i;j++)printf();for(k=1;k=7-2*i;k++)printf(*);printf(\n);}}P32页.4.求出三位数中满足条件的所有数:三个数字之积为32,三个数字之和为10。main(){inti,k1,k2,k3;for(i=100;i1000;i++){k1=i%10;k2=i/10%10;k3=i/100;if(k1*k2*k3==32&&k1+k2+k3==10)printf(%4d,i);}}P26页4.用牛顿迭代法求方程在x=0附近的实根,迭代精度为10-5。牛顿迭代法的公式为:#includemath.hmain(){floatx=0,x1,f,f1;f=x*x*x+9.2*x*x+16.7*x+4;f1=3*x*x+9.2*2*x+16.7;x1=x-f/f1;while(fabs(x-x1)=1e-5){x=x1;f=x*x*x+9.2*x*x+16.7*x+4;f1=3*x*x+9.2*2*x+16.7;x1=x-f/f1;}printf(x=%f\n,x1);}047.162.923xxx)(')(1kkkkxfxfxx#includemath.hmain(){floatx,x1=0,f,f1;do{x=x1;f=x*x*x+9.2*x*x+16.7*x+4;f1=3*x*x+9.2*2*x+16.7;x1=x-f/f1;}while(fabs(x-x1)=1e-5);printf(x=%f\n,x1);}