版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
会计学1C语言循环一维数组一、while语句while(条件)语句;条件语句;0非0i=1;while(i<=10){printf(“%d”,i);i++;}循环条件循环体循环不变式循环条件改变式ctrl+break可以是任意表达式:非0:真
0:假一条语句。如果需要写多条语句,必须在这多条语句外加{},构成复合语句第1页/共28页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第2页/共28页二、do/while语句do
语句;while(条件);条件语句0非0i=1;do{printf("%d",i);i++;}while(i<=10);可以是任意表达式:非0:真
0:假一条语句。如果需要写多条语句,必须在这多条语句外加{},构成复合语句第3页/共28页while和do/while的比较条件语句0非0条件语句0非0循环次数:无数次或者0次无数次或者至少要1次第4页/共28页
到最后一项的绝对值小于等于10-5(系统有求绝对值的库函数fabs)
循环不变式:sum=sum+flag*1/n;循环条件改变式:n=n+2;循环条件:fabs(flag*1/n)>1E-5例:利用格里高利公式求圆周率∏(用pi表示)
书上写的是1.0,写1可以吗,为什么?#include<math.h>?第5页/共28页三、for语句for(exp1;exp2;exp3)
语句exp3语句exp1exp20非0循环条件循环体第6页/共28页while和for的关系while(条件)语句for(exp1;exp2;exp3)
语句表达式语句0非0exp3语句exp1exp20非0exp1;while(exp2){
语句;
exp3;}第7页/共28页while(条件)语句for(exp1;exp2;exp3)
语句while和for的关系sum=0;i=1;while(i<=10){sum=sum+i;i++;}sum=0;for(i=1;i<=10;i++)sum=sum+i;exp1;while(exp2){
语句;
exp3;}第8页/共28页break语句作用:1.跳出switch语句2.
跳出当层循环for(i=0;i<5;i++){c=getchar();if(c==’\n’)break;putchar(c);}输入:abc↙123↙输出:abc第9页/共28页continue语句功能:跳过continue后面的语句,继续下一次循环for(i=0;i<5;i++){c=getchar();if(c==’\n’)continue;putchar(c);}输入:abc↙123↙输出:abc1第10页/共28页例:输入m,判断m是否为素数(质数)
分析:除了1和m,不能被其他数整除
m%2%3%4%5……%(m-1)
n=m-1;for(i=2;i<=n;i++)if(m%i==0)break;if(i>n)printf(“%d”,m);elseprintf(“no\n”);第11页/共28页例:输入m,判断m是否为素数(质数)
分析:除了1和m,不能被其他数整除
m%2%3%4%5……%(m-1)
n=m-1;for(i=2;i<=n;i++)if(m%i==0)break;if(i>n)printf(“%d”,m);elseprintf(“no\n”);sqrt(m)第12页/共28页多重循环(循环嵌套)注:循环嵌套均是大循环嵌套小循环绝对不允许循环体交叉
break只能跳出当层while(条件)语句;do
语句;while(条件);for(exp1;exp2;exp3)
语句;第13页/共28页多重循环(循环嵌套)例:输出100~200间所有素数#include<stdio.h>main(){intm,n,i;for(m=100;m<=200;m++){n=m-1;for(i=2;i<=n;i++)if(m%i==0)break;if(i>n)printf("%4d",m);}}第14页/共28页输出以下图形21个空格□□□□□□□□□□□□□□□□□□□□□1□□□□□□□□□□□□□□□□□□□2□□□2□□□□□□□□□□□□□□□□□3□□□3□□□3□□□□□□□□□□□□□□□4□□□4□□□4□□□4□□□□□□□□□□□□□5□□□5□□□5□□□5□□□5#include<stdio.h>main(){inti,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++;}}第15页/共28页数组
一维数组二维数组字符数组第16页/共28页数组的概念问题:输入3个整数后再将它们按输入顺序的相反顺序输出
int
a1、a2、a3
输入300个整数后再将它们按输入顺序的相反顺序输出
ints[300];s[0]、s[1]……s[299]
数组:相同类型数据的有序集合;在内存中连续存放优点:表述简洁,可读性高;便于使用循环结构特点:数组的大小必须是确定的;数组中元素的类型必须相同s01299……s[0]s[1]s[299]第17页/共28页一维数组的定义(先定义,后使用)定义:
[存储类别]类型名数组名[数组长度]类型名:数组元素的类型数组名:数组的名称数组长度:常量表达式,给定数组的大小inta[10];数组地址:&a[0]或a#defineN5charname[N];intb[7+1];intn=5;charname[n];a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]第18页/共28页一维数组元素的引用数组元素的引用:数组名[下标]下标:整型表达式取值范围:[0,数组长度-1]例:inta[10];
a[0]、a[1]、……、a[9]下标不要越界,不能使用a[10]注:数组元素的使用方法与同类型的变量相同第19页/共28页一维数组元素的引用例:设inta[10];,则给数组元素a[0]赋值1如何实现,输出数组元素a[0]的值如何实现呢?给每个数组元素输入值如何实现,输出所有数组元素的值如何实现呢?P109注:数组元素的使用方法与同类型的变量相同第20页/共28页在定义数组时给初值
inta[5]={1,2,3,4,5};inta[]={1,2,3,4,5};inta[5]={1,2};inta[5];
inta[5]={1,2,3,4,5,6};一维数组的初始化a[3]的值?第21页/共28页例:用数组计算fibonacci数列的前20个数的和,并按
每行打印5个数的格式输出数列,然后输出和值。
11235813……
用数组
f[0]=f[1]=1f[i]=f[i-1]+f[i-2](2<=i<=19)
if((i+1)%5==0)printf(“\n”);第22页/共28页#include<stdio.h>voidmain(){ intf[20],sum=0,i; f[0]=1; f[1]=1; for(i=2;i<20;i++) f[i]=f[i-1]+f[i-2]; for(i=0;i<20;i++) { printf("%4d",f[i]); if((i+1)%5==0)printf("\n"); sum=sum+f[i]; } printf("sum=%d",sum);}intf[20]={1,1},sum=0,i;第23页/共28页将数组a中存放的10个数按颠倒的顺序重新存放main(){inta[10]={26,21,29,85,76,25,30,50,44,60};inti,j,temp;i=0;j=9;while(i<j){temp=a[i];a[i]=a[j];a[j]=temp;i++;j--;}for(i=0;i<10;i++)printf("%4d",a[i]);printf("\n");}运行结果如下:
60445030257685292126
ij第24页/共28页输入n个数,用“冒泡法”将它们按从小到大的次序排序并输出。#defineN5main(){inta[N],i,j,temp;for(i=0;i<N;i++)scanf("%d",&a[i]);for(i=0;i<N-1;i++)for(j=0;j<N-1-i;j++)if(a[j]>a[j+1]) {temp=a[j]; a[j]=a[j+1]; a[j+1]=temp;}printf("\n");for(i=0;i<N;i++)printf("%4d",a[i]);printf("\n");}a[0]a[4]a[3]a[2]a[1]76394初始状态46397第一趟第1次的结果46397第一趟第2次的结果46937第一趟第3次的结果49637第一趟第4次的结果a[0]a[4]a[3]a[2]a[1]76394初始状态49637第一趟的结果49763第二趟的结果39764第三趟的结果39764第四趟的结果第25页/共28页输入n个数,用“选择法”将它们按从小到大的次序排序并输出。a[0]a[4]a[3]a[2]a[1]7p6394初始状态76394p第一趟第1次的结果76394p第一趟第2次的结果763p94第一趟第3次的结果763p94第一趟第4次的结果a[0]a[4]a[3]a[2]a[1]36794初始状态36794p第二趟初始状态36794p第二趟第1次的结果36794p第二趟第2次的结果36794p第二趟第3次的结果a[0]a[4]a[3]a[2]a[1]763
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/SASQ 0003-2023先进质量管理组织培育孵化通则
- 影视传媒公司制片人项目执行KPI考核表
- 媒体编辑工作质量与传播影响力评估表
- 电商供应链管理效率考核表
- T/SATA 064-2023小作坊食品 烘烤类糕点(酥皮类)
- 空气消毒机使用、维护及消毒效果检测考试试题及答案
- 营销与销售团队绩效表
- 闪速炉熔炼工安全生产意识知识考核试卷含答案
- 轧制原料准备工岗前实操能力考核试卷含答案
- 商务旅行安排与预算控制方案
- 中国邮政储蓄银行2027届校园招聘笔试备考试题及答案解析
- 2.7.2 勾股定理的逆定理 课件 -2026-2027学年浙教版数学八年级上册
- 2026年融媒体新闻采编技术应用及理论知识考试题库(附含答案)
- 人工挖孔灌注桩安全技术交底培训
- 2026年安徽省中考英语真题试卷及答案
- 《动物普通病》教案 项目十四 妊娠期疾病
- 六年级上册语文1-8单元基础默写通关练习卷
- 2026年基于数字化手段的幼儿园家园沟通效率提升策略
- DB4403T 508-2024《生产经营单位锂离子电池存储使用安全规范》
- 2024年农业职业经理人知识积累试题及答案
- LY/T 3405-2024竹材弧形原态重组材
评论
0/150
提交评论