C语言循环、一维数组

上传人:xiao****1972 文档编号:245061587 上传时间:2024-10-07 格式:PPT 页数:29 大小:675KB
返回 下载 相关 举报
C语言循环、一维数组_第1页
第1页 / 共29页
C语言循环、一维数组_第2页
第2页 / 共29页
C语言循环、一维数组_第3页
第3页 / 共29页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第四章 循环结构第五章 一维数组,循环语句,问题:,打印整数,1,10,打印整数,1,100,打印整数,1,n,printf(,“,”,);,printf(,“,%d,”,1);,printf(,“,%d,”,2);,printf(,“,%d,”,10);,i=1;,printf(,“,%d,”,i);,printf(,“,%d,”,i);,printf(,“,%d,”,i); i+;,#include,main(),int i;,i=1;,while(i=10),printf(%d,i);,i+;,i+;,i+;,一、,while,语句,while,(条件),语句;,条件,语句;,0,非,0,i=1;,while(i=10),printf(,“,%d,”,i);,i+;,循环条件,循环体,循环不变式,循环条件改变式,ctrl+break,可以是任意表达式:,非,0,:真,0,:假,一条语句。,如果需要写多条语句,必须在这多条语句外加,,构成复合语句,sum=0;,sum =sum +1,;,sum =sum +2,;,sum =sum +3,;,sum=sum+10,;,求,sum,sum,0;,i=1;,while(i=10),sum=sum+i;,i+;,循环不变式:,sum=sum+,i,;,循环条件:,i,的取值,1,10,二、,do/while,语句,do,语句;,while,(条件),;,条件,语句,0,非,0,i=1;,do,printf(%d,i);,i+;,while(i1E-5,例:利用格里高利公式求圆周率(用,pi,表示),书上写的是,1.0,,写,1,可以吗,为什么?,#include?,三、,for,语句,for(exp1;exp2;exp3),语句,exp3,语句,exp1,exp2,0,非,0,循环条件,循环体,while,和,for,的关系,while,(条件),语句,for(exp1;exp2;exp3),语句,表达式,语句,0,非,0,exp3,语句,exp1,exp2,0,非,0,exp1;,while(exp2),语句;,exp3;,while,(条件),语句,for(exp1;exp2;exp3),语句,while,和,for,的关系,sum,0,;,i=1;,w,hile(i=10),sum=sum+i;,i+;,sum,0,;,for(i=1;i=10;i+),sum=sum+i;,exp1;,while(exp2),语句;,exp3;,break,语句,作用:,1.,跳出,switch,语句,2.,跳出当层循环,for(i=0;i5;i+),c=getchar();,if(c=,n,) break;,putchar(c);,输入:,abc,123,输出:,abc,continue,语句,功能:,跳过,continue,后面的语句,继续下一次循环,for(i=0;i5;i+),c=getchar();,if(c=,n,) continue;,putchar(c);,输入:,abc,123,输出:,abc1,例:输入,m,,判断,m,是否为素数(质数),分析:除了,1,和,m,,不能被其他数整除,m,2,3,4,5 ,(,m,1,),n= m-1 ;,for(i=2;in) printf(,“,%d,”,m);,else printf(,“,non,”,);,例:输入,m,,判断,m,是否为素数(质数),分析:除了,1,和,m,,不能被其他数整除,m,2,3,4,5 ,(,m,1,),n= m-1 ;,for(i=2;in) printf(,“,%d,”,m);,else printf(,“,non,”,);,sqrt(m),多重循环(循环嵌套),注:,循环嵌套均是大循环嵌套小循环,绝对不允许循环体交叉,break,只能跳出当层,while,(条件),语句;,do,语句;,while,(条件),;,for(exp1;exp2;exp3),语句;,多重循环(循环嵌套),例:输出,100,200,间所有素数,#include,main(),int m,n,i;,for(m=100;m=200;m+),n=m-1;,for(i=2;in) printf(%4d,m);,输出以下图形,21,个空格,1,22,3 33,4444,55555,#include,main(),int i,j,k;,i=1;,while(i=5),for(j=1;j=20-2*i;j+) printf( );,for(k=1;k=i;k+) printf(%4d,i);,printf(n);,i+;,数组,一维数组,二维数组,字符数组,数组的概念,问题:,输入,3,个整数后再将它们按输入顺序的相反顺序输出,int,a1,、,a2,、,a3,输入,300,个整数后再将它们按输入顺序的相反顺序输出,int s300; s0,、,s1,s299,数组:,相同类型,数据的,有序,集合;在内存中连续存放,优点:表述简洁,可读性高;,便于使用循环结构,特点:数组的大小必须是确定的;数组中元素的类型必须相同,s,0,1,299,s0,s1,s299,一维数组的定义,(,先定义,后使用,),定义:,存储类别,类型名 数组名,数组长度,类型名:数组元素的类型,数组名:数组的名称,数组长度:,常量,表达式,给定数组的大小,int a10;,数组地址:,&a0,或,a,#define N 5,char nameN;,int b7+1;,int n=5;,char namen;,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,一维数组元素的引用,数组元素的引用:,数组名,下标,下标:,整型,表达式,取值范围:,0,,数组长度,1,例:,int a10,;,a0,、,a1,、,、,a9,下标不要越界,,不能使用,a10,注:数组元素的使用方法,与同类型的变量相同,一维数组元素的引用,例:,设,int a10;,则给数组元素,a0,赋值,1,如何实现,输出数组元素,a0,的值如何实现呢?,给每个数组元素输入值如何实现,输出所有数组元素的值如何实现呢?,P,109,注:数组元素的使用方法与同类型的变量相同,在定义数组时给初值,int a5=1,2,3,4,5;,int a =1,2,3,4,5;,int a5=1,2;,int a5;,int a5=1,2,3,4,5,6;,一维数组的初始化,a3,的值?,例:用数组计算,fibonacci,数列的前,20,个数的和,并按 每行打印,5,个数的格式输出数列,然后输出和值。,1 1 2 3 5 8 13,用数组,f0=f1=1,fi=fi-1+fi-2,(,2=i=19,),if(i+1)%5=0)printf(,“,n,”,);,#include,void main(),int f20,sum=0,i;,f0=1;,f1=1;,for(i=2;i20;i+),fi=fi-1+fi-2;,for(i=0;i20;i+),printf(%4d,fi);,if(i+1)%5=0) printf(n);,sum=sum+fi;,printf(sum=%d,sum);,int f20=1,1,sum=0,i;,将数组a中存放的10个数按颠倒的顺序重新存放,main(),int a10=26,21,29,85,76,25,30,50,44,60;,int i,j,temp;,i=0;,j=9;,while (ij),temp=ai;,ai=aj;,aj=temp;,i+;,j-;,for (i=0;i10;i+),printf(%4d,ai);,printf(n);,运行结果如下:,60 44 50 30 25 76 85 29 21 26,i,j,输入,n,个数,用,“,冒泡法,”,将它们按从小到大的次序排序并输出。,#define N 5,main(),int aN,i,j,temp;,for (i=0;iN;i+),scanf(%d,for (i=0;iN-1;i+),for(j=0;jaj+1),temp=aj;,aj=aj+1;,aj+1=temp;,printf(n);,for (i=0;iN;i+),printf(%4d,ai);,printf(n);,a0,a4,a3,a2,a1,7,6,3,9,4,初始状态,4,6,3,9,7,第一趟第,1,次的结果,4,6,3,9,7,第一趟第,2,次的结果,4,6,9,3,7,第一趟第,3,次的结果,4,9,6,3,7,第一趟第,4,次的结果,a0,a4,a3,a2,a1,7,6,3,9,4,初始状态,4,9,6,3,7,第一趟的结果,4,9,7,6,3,第二趟的结果,3,9,7,6,4,第三趟的结果,3,9,7,6,4,第四趟的结果,输入n个数,用,“,选择法,”,将它们按从小到大的次序排序并输出。,a0,a4,a3,a2,a1,7p,6,3,9,4,初始状态,7,6,3,9,4p,第一趟第,1,次的结果,7,6,3,9,4p,第一趟第,2,次的结果,7,6,3p,9,4,第一趟第,3,次的结果,7,6,3p,9,4,第一趟第,4,次的结果,a0,a4,a3,a2,a1,3,6,7,9,4,初始状态,3,6,7,9,4p,第二趟初始状态,3,6,7,9,4p,第二趟第,1,次的结果,3,6,7,9,4p,第二趟第,2,次的结果,3,6,7,9,4p,第二趟第,3,次的结果,a0,a4,a3,a2,a1,7,6,3,9,4,初始状态,3,9,7,9,4,第一趟的结果,3,6,7,9,4,第二趟的结果,3,9,7,6,4,第三趟的结果,3,9,7,6,4,第四趟的结果,#define N 5,main(),int aN+1,i,j,p,temp;,printf(Input %d numbers:n,N);,for (i=1;i=N;i+),scanf(%d,:,for (i=1;i=N-1;i+),p=i;,for (j=i+1;jaj) p=j;,if (p!=i),temp=ap;,ap=ai;,ai=temp;,printf(n);,printf(Output %d numbers,after sortn,N);,for (i=1;i=N;i+),printf(%4d,ai);,printf(n);,运行情况如下,Input 5 numbers:,4 9 3 6,Output 5 numbers,after sort,3 4 6 7 9,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!