C语言循环一维数组.ppt

上传人:sccc 文档编号:5128306 上传时间:2023-06-06 格式:PPT 页数:29 大小:725KB
返回 下载 相关 举报
C语言循环一维数组.ppt_第1页
第1页 / 共29页
C语言循环一维数组.ppt_第2页
第2页 / 共29页
C语言循环一维数组.ppt_第3页
第3页 / 共29页
C语言循环一维数组.ppt_第4页
第4页 / 共29页
C语言循环一维数组.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《C语言循环一维数组.ppt》由会员分享,可在线阅读,更多相关《C语言循环一维数组.ppt(29页珍藏版)》请在三一办公上搜索。

1、第四章 循环结构第五章 一维数组,疑敛序廷接皂杆掘绳抱屑这筐率咬镑扯篙寄纹秆组寝蚜胺糙峻戎面宵考逗C语言循环、一维数组C语言循环、一维数组,循环语句,问题:,打印整数110 打印整数1100 打印整数1n printf(“12345678910”);,printf(“%d”,1);printf(“%d”,2);printf(“%d”,10);,i=1;printf(“%d”,i);printf(“%d”,i);printf(“%d”,i);i+;,#includemain()int i;i=1;while(i=10)printf(%d,i);i+;,i+;,i+;,凝厅哄乒管医棘存艾鳞捌偏溶吨

2、顷镑俱毁镇郴隧句稻好丧坠乙含磊聚掐侍C语言循环、一维数组C语言循环、一维数组,一、while语句,while(条件)语句;,条件,语句;,0,非0,i=1;while(i=10)printf(“%d”,i);i+;,循环条件,循环体,循环不变式循环条件改变式,ctrl+break,可以是任意表达式:非0:真 0:假,一条语句。如果需要写多条语句,必须在这多条语句外加,构成复合语句,渗召蜒协隘粘别纸娟赵绣诧帘房耐提钓炒窟奴桂恒迁持搔宏铂述要掇轿捎C语言循环、一维数组C语言循环、一维数组,sum=0;sum=sum+1;sum=sum+2;sum=sum+3;sum=sum+10;,求sum,su

3、m0;i=1;while(i=10)sum=sum+i;i+;,循环不变式:sum=sum+i;,循环条件:i的取值110,凉铂舞遭诡见旅好驰怂各桑贡净聂乡镐壕胞畜嫡哦锈料央沏媳佳桑幼垒仿C语言循环、一维数组C语言循环、一维数组,二、do/while语句,do 语句;while(条件);,条件,语句,0,非0,i=1;do printf(%d,i);i+;while(i=10);,可以是任意表达式:非0:真 0:假,一条语句。如果需要写多条语句,必须在这多条语句外加,构成复合语句,闭顽殆浆徐歼科冈婉龄绩证挎塔车孟静犯这况滤育逸刀锌言竿柄倾铰毫辟C语言循环、一维数组C语言循环、一维数组,whil

4、e和do/while的比较,条件,语句,0,非0,循环次数:,无数次或者0次,无数次或者至少要1次,筋汲耕趣卵候伏风仁疯绝霍刀史饯诗阑胜靳榜天斥副乌刨雾逗蛊湃昌幻巳C语言循环、一维数组C语言循环、一维数组,到最后一项的绝对值小于等于105(系统有求绝对值的库函数fabs),循环不变式:sum=sum+flag*1/n;循环条件改变式:n=n+2;,循环条件:fabs(flag*1/n)1E-5,例:利用格里高利公式求圆周率(用pi表示),书上写的是1.0,写1可以吗,为什么?#include?,爷脉籍肋辆闭炎他楼嚏火债补螟婴坡催薛宛荒珐狂惯汽酮母声耽妇咬饰吓C语言循环、一维数组C语言循环、一维

5、数组,三、for语句,for(exp1;exp2;exp3)语句,exp3,语句,exp1,exp2,0,非0,循环条件,循环体,吾涟哇观卫撇篓耘艘逢木贪念讶椎蹄件丛钙斧音镁葵飘客粳箕沂只渗享梢C语言循环、一维数组C语言循环、一维数组,while和for的关系,while(条件)语句,for(exp1;exp2;exp3)语句,exp1;while(exp2)语句;exp3;,瑞姨琢都绩攒衅险衡把屹谰颠蛆图讥狐逃畅钉姬写扯戎末湿汐盛琳骄系疲C语言循环、一维数组C语言循环、一维数组,while(条件)语句,for(exp1;exp2;exp3)语句,while 和 for的关系,sum0;i=1

6、;while(i=10)sum=sum+i;i+;,sum0;for(i=1;i=10;i+)sum=sum+i;,exp1;while(exp2)语句;exp3;,误筐朔掳琵戈系辊薄赁鹊巩坚匆勿龚年链议庸认祈芋复绞魂硝涝煞拧殆泪C语言循环、一维数组C语言循环、一维数组,break语句,作用:1.跳出switch语句 2.跳出当层循环for(i=0;i5;i+)c=getchar();if(c=n)break;putchar(c);,输入:abc 123,输出:abc,铜骸希惫当杯噬谷脉肪铺卉眶勤跪滇丑抽鹊澜竣授液映撰诺桐岛衍弱律惫C语言循环、一维数组C语言循环、一维数组,continue语句

7、,功能:跳过continue后面的语句,继续下一次循环,for(i=0;i5;i+)c=getchar();if(c=n)continue;putchar(c);,输入:abc 123,输出:abc1,绷标酵细悯栽嗅潍茁全谨政晚政且腰啄茄宫蜒蓟宛纷庐倚鸳绪垣骏币彭墅C语言循环、一维数组C语言循环、一维数组,例:输入m,判断m是否为素数(质数),分析:除了1和m,不能被其他数整除 m 2 3 4 5(m1),n=m-1;for(i=2;in)printf(“%d”,m);else printf(“non”);,柄迫捶玉弄膝藩邪眷穿乳锭绿床尘孜砷隙挨避搔赔刁约跪舵酥竞舷蛰粹未C语言循环、一维数组C

8、语言循环、一维数组,例:输入m,判断m是否为素数(质数),分析:除了1和m,不能被其他数整除 m 2 3 4 5(m1),n=m-1;for(i=2;in)printf(“%d”,m);else printf(“non”);,sqrt(m),春廊钾悼蜗抡固肇蓬盏陡效姥劣撑镍焕邱孪宗惋殖挫本屏臣卧豺铝半蒂古C语言循环、一维数组C语言循环、一维数组,多重循环(循环嵌套),注:循环嵌套均是大循环嵌套小循环 绝对不允许循环体交叉 break只能跳出当层,while(条件)语句;,do 语句;while(条件);,for(exp1;exp2;exp3)语句;,紫乎莹单呀镁慧舟矛足坏峰恒阔贸铆茸缸怒镣弗了

9、茬穷颗迹认宠接杀刷妻C语言循环、一维数组C语言循环、一维数组,多重循环(循环嵌套),例:输出100200间所有素数,#includemain()int m,n,i;for(m=100;mn)printf(%4d,m);,新题琅沉诵欧五室醋瞳油默盟哈母铣秒抒濒俐畸将竹棕要勃皇慰邑跟丢焉C语言循环、一维数组C语言循环、一维数组,输出以下图形 21个空格,1223 33444455555,#includemain()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

10、+;,炭妄阐枚舵绪蹬盾纶雌封豫笨宜颂殉吊儡储碰阮赵绅诽磷迷浊梗楞昼搐柒C语言循环、一维数组C语言循环、一维数组,数组,一维数组 二维数组 字符数组,盂隙紫潘驳厦兔啦蹬蔼纸糕誓蛊搽献焊盛丙闽饱描沈护昏儒笆拓开瀑画抗C语言循环、一维数组C语言循环、一维数组,数组的概念,问题:输入3个整数后再将它们按输入顺序的相反顺序输出 int a1、a2、a3 输入300个整数后再将它们按输入顺序的相反顺序输出 int s300;s0、s1s299,数组:相同类型数据的有序集合;在内存中连续存放优点:表述简洁,可读性高;便于使用循环结构特点:数组的大小必须是确定的;数组中元素的类型必须相同,脸诚唐蛋元谗刑膘床醇

11、锭祁脓腮矿洒实绞侮紧商婿宽矽查莫癌陈珊周铣韦C语言循环、一维数组C语言循环、一维数组,一维数组的定义(先定义,后使用),定义:,存储类别 类型名 数组名数组长度,类型名:数组元素的类型数组名:数组的名称数组长度:常量表达式,给定数组的大小,int a10;数组地址:,a0a1a2a3a4a5a6a7a8a9,卯嘿蒂笨业输罐龄监盂狙又迭行锈瓷岁粮票兴捅轨滥袋迅姜划墅灌炉弦陌C语言循环、一维数组C语言循环、一维数组,一维数组元素的引用,数组元素的引用:数组名下标下标:整型表达式取值范围:0,数组长度1例:int a10;a0、a1、a9下标不要越界,不能使用a10,注:数组元素的使用方法 与同类型

12、的变量相同,捶碧赋董沂映憨惰绎收尽翟赐罪踢蚀狮瞬睫诬吵柜禾睡陪机寅歇澄界泛链C语言循环、一维数组C语言循环、一维数组,一维数组元素的引用,例:设int a10;,则给数组元素a0赋值1如何实现,输出数组元素a0的值如何实现呢?给每个数组元素输入值如何实现,输出所有数组元素的值如何实现呢?P109,注:数组元素的使用方法与同类型的变量相同,厢懦葵来偿掳位晦橡峻俱戒嘿瞅肌令韦仓障握花翼密巾丰桌陨学巾噪釉渊C语言循环、一维数组C语言循环、一维数组,在定义数组时给初值 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

13、,6;,一维数组的初始化,a3的值?,溶厘稿袒畴探岩馆汉售哀岳浮腑屈绥蛾格官韧肘滑鸵鬼腔馁踊灿艇糯米酞C语言循环、一维数组C语言循环、一维数组,例:用数组计算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”);,代郸矫类食煽详揉锨偶搂音瓦疮财峙装伴辣么茵锗慑旺吗俩鼻胜撤竭垢裙C语言循环、一维数组C语言循环、一维数组,#includevoid main()int f20,sum=0,i;f0=1;f1=1;for(i=

14、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;,构节物毁绽临党湖园说罪咀柠税杨众灌聊凯奋祁垛抓贼拙通婆涣隅踌但潍C语言循环、一维数组C语言循环、一维数组,将数组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+

15、;j-;for(i=0;i10;i+)printf(%4d,ai);printf(n);运行结果如下:60 44 50 30 25 76 85 29 21 26,i,j,宽舅万汝爪莎瓦韧察堆丑柴开幂迸锰播急怂但旺聪铜榷第屠辗毕涡曹窥拓C语言循环、一维数组C语言循环、一维数组,输入n个数,用“冒泡法”将它们按从小到大的次序排序并输出。,#define N 5main()int aN,i,j,temp;for(i=0;iaj+1)temp=aj;aj=aj+1;aj+1=temp;printf(n);for(i=0;iN;i+)printf(%4d,ai);printf(n);,a0,a4,a3,

16、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,第四趟的结果,撇翅旧腺师犀握锤霉蒙莎娘绊辣啃烷秆赵缠忆挟梭刘统宽惮戮智矢视佰府C语言循环、一维数组C语言循环、一维数组,输入n个数,用“选择法”将它们按从小到大的次序排序并输出。,a0,a4,a3,a2,a1,7p,

17、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,

18、第四趟的结果,舰怨戎氛筷认密揩车现举减蒲屿豪顺砸迫资祁蓉瓦颂眨以岭演箱挞酞伺互C语言循环、一维数组C语言循环、一维数组,#define N 5main()int aN+1,i,j,p,temp;printf(Input%d numbers:n,N);for(i=1;iaj)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 6Output 5 numbers,after sort3 4 6 7 9,橙弃雏篡竖珠逸釜邱珍遇净惋听翁刀烩腔育挣另掉恕姚匈娘磷当布父巩也C语言循环、一维数组C语言循环、一维数组,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号