资源描述
,Click to edit Master title style,Click to edit Master title style,编程序计算s=1+2+3+100。,例1:编程序计算 s=1+2+3+100,如何实现累加?,初始:s=0,s=s+,1,s=s+,2,s=s+,100,1,1+2,1+2+.+100,s=s+,3,1+2+3,.,如何得到加数?,1、2、100,初始:i=1,s=s+i;,i+;,s=0 i=1,s+=i,i+,输出s,当 i=100时,举 例,#include,int main(),int s,i;,s=0;,i=1;,while(i=100),s+=i;,i+;,printf(s=%dn,s);,return 0;,例1:编程序计算 s=1+2+3+100,如何实现累加?,初始:s=0,s=s+,1,s=s+,2,s=s+,100,1,1+2,1+2+.+100,s=s+,3,1+2+3,.,如何得到加数?,1、2、100,初始:i=1,s=s+i;,i+;,s=0 i=1,s+=i,i+,输出s,当 i=100时,举 例,#include,int main(),int s,i;,s=0;,i=1;,while(i=100),s+=i;,i+;,printf(s=%dn,s);,return 0;,do,while(ix;,do,x/=10;,n+;,while(x!=0),;,coutnendl;,cout0,输入x,count=0,输出count,举 例,#include,int main(),int count,x;,count=0;,cinx;,while(x0),if(x%2!=0),count+;,cinx;,coutcount0,输入x,输入sum,输出count,count+,xsum,输入x,T,F,count=0,sum-=x,#include,int main(),int sum,count=0,x;,cinsum;,cinx;,while(x0),if(xsum),count+;,else,sum-=x;,cinx;,coutcount;,return 0;,for语句,for语句的一般形式,for(表达式1,;,表达式2,;,表达式3),循环体 ,表达式2,执行过程,表达式1,真,假,例,:,for(i=1;i4;i+),循环体,表达式3,printf(%d,i);,i=1,i,第一次,循环次数,1,1,第二次,2,2,第三次,3,3,退出循环:,4,例1:编程序,计算 s=1+2+3+100,如何实现累加?,初始:s=0,s=s+,1,s=s+,2,s=s+,100,1,1+2,1+2+.+100,s=s+,3,1+2+3,.,如何得到加数?,1、2、100,初始:i=1,s=s+i;,i+;,s=0 i=1,s+=i,i+,输出s,当 i=100时,举 例,#include,void main(),int s,i;,s=0;,i=1;,while(i=100),s+=i;,i+;,printf(s=%d,s);,for(i=1;i=100;i+),例5:计算n的阶乘。,n!=1,2 3(n-1)n,举 例,3,3!=6,17,17!=-288522240,数据,溢出!,#include stdio.h,void main(),int s,n,i;,scanf(%d,s=1;,for(i=1;in;,for(i=1;i=n;i+),s+=f/i;,f=-f;,coutsendl;,s+=f*1.0/i;,例7:计算 直到t的值大于或等于10000为止,求此时t和n的值。,举 例,t+=2,n,t10000,t=0,输出t和,?,n=0,n+,#include iostream.h,#include math.h,void main(),int t=0,n=0;,do,t+=pow(2,n);,n+;,while(t10000);,coutt=t;,coutnn=max,真,max=x,for i=2 to n,读入n,输出max,假,大数,max,大数,max,大数,max,读数,比较,n-1次,void main(),int x,max,i,n;,max=x;,for(i=2;imax?x:max;,printf(,max=%d,max);,printf(,Input n,x:,);,scanf(,%d%d,&,n,&,x);,#include,例9:判断一个数n是否是素数。,如何判断,设一个标志leap,取两个值,1:是素数,0:不是素数,输入n,for i=2 to n-1,n%i=0,T,F,leap=0,leap=1,leap=1,T,yes,F,no,举 例,素数,大于1,只能被1和它本身整除。,n不能被2,3,n-1之中的数整除,验证:,#include iostream.h,void main(),int n,leap,i;,cinn;,leap=1;,for(i=2;in;i+),if(n%i,=,0),leap=0;,if(leap,=,1),coutyes;,else,coutno;,循环辅助控制,break语句,可用于循环体中,使程序从,整个,循环中退出.,continue语句,可用于循环体中,使程序从,本次,循环中退出,继续下一次循环.,以dowhile循环为例:,break,continue,退出,整个,循环,退出,本次,循环,break;,continue;,循环体,表达式,while,do,循环体,表达式,while,do,#include stdio.h,void main(),int i;,for(i=1;i8;i+),if(i%2=0),break;,else,printf(%d,i);,printf(*);,printf(%d,i);,#include stdio.h,void main(),int i;,for(i=1;in;,leap=1;,for(i=2;in;i+),if(n%i,=,0),leap=0;,if(,leap,),coutyes;,else,coutno;,判断素数,非0为真,0为假,for(i=2;i,sqrt(n),#include,#include,#include,void main(),int n,i;,cinn;,for(i=2;isqrt(n),coutyes;,else,coutn;,i=2;,while(isqrt(n),coutyes;,else,coutno;,作 业,课本:P77 第15题,实验指导书:P94 第1、2题,循环结构(一),测试平台,第1题:,输入两个正整数m和n,编写程序求其最大公约数和最小公倍数。,样例输入:15 25,样例输出:5 75,第2题:,输出所有大于给定数n的“水仙花数”,n由键盘输入。所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如,153是一个“水仙花数”,因为153=13+53+33。,样例输入:100,样例输出:153 370 371 407,第3题:,有一分数序列,计算该序列的前n项和,n由键盘输入。,样例输入:20,样例输出:32.6603,第4题:,一球从100米高度自由落下,每一次落地后反弹回原高度的一半,再落下,求它在第n次落地时,共经过多少米?第n次反弹多高?n由键盘输入。,样例输入:10,样例输出:299.609 0.0976563,第5题:,输入一行字符,以字符0作为结束标志,输出这行字符对应的ASCII码值之和。,样例输入:ABCDE0,样例输出:335,第6题:,编写程序求n以内(包括n)能被3或7整除的所有自然数的倒数之和。,样例输入:21,样例输出:1.07857,第7题:,编写程序求 a+aa+aaa+aaaa+aaaa(n个a)之和,其中a和n由键盘输入。,样例输入:8 5 样例输出:98760,
展开阅读全文