chap2_用c语言编写程序13浙江大学计算机辅助设计与

上传人:枫** 文档编号:592172967 上传时间:2024-09-19 格式:PPT 页数:67 大小:549.50KB
返回 下载 相关 举报
chap2_用c语言编写程序13浙江大学计算机辅助设计与_第1页
第1页 / 共67页
chap2_用c语言编写程序13浙江大学计算机辅助设计与_第2页
第2页 / 共67页
chap2_用c语言编写程序13浙江大学计算机辅助设计与_第3页
第3页 / 共67页
chap2_用c语言编写程序13浙江大学计算机辅助设计与_第4页
第4页 / 共67页
chap2_用c语言编写程序13浙江大学计算机辅助设计与_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《chap2_用c语言编写程序13浙江大学计算机辅助设计与》由会员分享,可在线阅读,更多相关《chap2_用c语言编写程序13浙江大学计算机辅助设计与(67页珍藏版)》请在金锄头文库上搜索。

1、Chap7数数组组7.1排序问题排序问题7.2找出矩阵中最大值所在的位置找出矩阵中最大值所在的位置7.3进制转换进制转换1输输入入一一个个正正整整数数n(1n10),再再输输入入n个个整整数数,用用选选择择法法将将它它们们从从小小到到大大排排序序后后输输出。出。7.1.1程序解析程序解析7.1.2一维数组的定义和引用一维数组的定义和引用7.1.3一维数组的初始化一维数组的初始化7.1.4使用一维数组编程使用一维数组编程7.1排序问题排序问题27.1.1程序解析排序程序解析排序#includeintmain(void)inti,index,k,n,temp;inta10;/*定义定义1个数组个数

2、组a,它有,它有10个整型元素个整型元素*/printf(“Entern:);scanf(%d,&n);printf(“Enter%dintegers:,n);for(i=0;in;i+)scanf(%d,&ai);for(k=0;kn-1;k+)/*对对n个数排序个数排序*/index=k;for(i=k+1;in;i+)if(aiaindex)index=i;temp=aindex;aindex=ak;ak=temp;printf(Aftersorted:);for(i=0;in;i+)/*输出输出n个数组元素的值个数组元素的值*/printf(%d,ai);return0;3for(i=

3、0;in;i+)printf(%d,ai);数组:数组:相同类型相同类型数据的数据的有序有序集合集合,在内存中连续存放。,在内存中连续存放。由数组名和下标惟一地确定每个数组元素由数组名和下标惟一地确定每个数组元素每个元素都属于同一类型每个元素都属于同一类型一批相同类型的变量使用同一个数组变量名,用下标一批相同类型的变量使用同一个数组变量名,用下标来相互区分。来相互区分。优点:表述简洁,可读性高;便于使用优点:表述简洁,可读性高;便于使用循环循环结构结构数组数组0129a0a1a9a3528122890-1747.1.2一维数组的定义和引用一维数组的定义和引用1、定义、定义类型名类型名数组名数组

4、名数组长度数组长度类型名:数组元素的类型类型名:数组元素的类型数组名:数组变量的名称,标识符数组名:数组变量的名称,标识符数组长度:常量表达式,给定数组的大小数组长度:常量表达式,给定数组的大小inta10;定义一个含有定义一个含有10个整型元素的数组个整型元素的数组acharc200;定义一个含有定义一个含有200个字符元素的数组个字符元素的数组cfloatf5;定义一个含有定义一个含有5个浮点型元素的数组个浮点型元素的数组f52、引用、引用n先定义,后使用先定义,后使用n只能引用单个的只能引用单个的数组元素数组元素,不能一次引用整个数组,不能一次引用整个数组数组名数组名下标下标下标:整型表

5、达式下标:整型表达式取值范围:取值范围:0,数组长度,数组长度-1inta10;10个元素:个元素:a0、a1、a9n数组元素的使用方法与同类型的变量相同数组元素的使用方法与同类型的变量相同scanf(%d,&ai);temp=aindex;aindex=ak;ak=temp;printf(%d,ai);下标不要越界下标不要越界不能使用不能使用a106定义数组定义数组类型名类型名数组名数组名数组长度数组长度引用数组元素引用数组元素数组名数组名下标下标inta10;a0=a9=0;ak=temp;区分数组的定义和数组元素的引用区分数组的定义和数组元素的引用下标不要越界下标不要越界数组长度为常量数

6、组长度为常量77.1.3一维数组的初始化一维数组的初始化n定义数组时,对数组元素赋初值定义数组时,对数组元素赋初值类型名类型名数组名数组名数组长度数组长度=初值表初值表;inta10=1,2,3,4,5,6,7,8,9,10;a0=1,a1=2,.a9=10n静态数组、动态数组的初始化静态数组、动态数组的初始化staticintb5=1,2,3,4,5;静态存储的数组如果没有初始化,所有元素自动赋静态存储的数组如果没有初始化,所有元素自动赋0staticintb5;动态存储的数组如果没有初始化,所有元素为随机值动态存储的数组如果没有初始化,所有元素为随机值autointc5;8staticin

7、tb5=1,2,3;b0=1,b1=2,b2=3,b3=0,b4=0autointfib20=0,1;fib0=0,fib1=1,其余元素不确定其余元素不确定n如果对全部元素都赋初值,可以省略数组长度如果对全部元素都赋初值,可以省略数组长度inta=0,1,2,3,4,5,6,7,8,9;/*长度为长度为10*/针对局部元素的初始化针对局部元素的初始化97.1.4使用一维数组编程使用一维数组编程数组和循环数组和循环for(i=0;in;i+)printf(%d,ai);数组下标作为循环变量,通过循环,逐个数组下标作为循环变量,通过循环,逐个处理数组元素处理数组元素10一维数组例如一维数组例如例

8、例7-2用数组计算用数组计算fibonacci数列的前数列的前20个数,并按个数,并按每行打印每行打印5个数的格式输出。个数的格式输出。1,1,2,3,5,例例7-3输入输入5个整数,将它们存入数组个整数,将它们存入数组a中,再输入中,再输入1个数个数x,然后在数组中查找,然后在数组中查找x,如果找到,输出相,如果找到,输出相应的下标,否那么,输出应的下标,否那么,输出“NotFound。例例7-4输入输入n(n10),再输入,再输入n个数个数(1)求最小值求最小值(2)求最小值和它所对应的下标求最小值和它所对应的下标(3)将最小值与第一个数交换,输出交换后的将最小值与第一个数交换,输出交换后

9、的n个数个数例例7-1输入输入n(n10),再输入,再输入n个数,用选择法将它个数,用选择法将它们从小到大排序后输出。们从小到大排序后输出。11用数组计算用数组计算fibonacci数列的前数列的前20个数,并个数,并按每行打印按每行打印5个数的格式输出。个数的格式输出。1,1,2,3,5,8,13,用数组计算并存放用数组计算并存放fibonacci数列的前数列的前20个数个数f0=f1=1fn=fn-1+fn-22n19例例7-2计算计算fibonacci数列数列12#includeintmain(void)inti;intfib20=1,1;/*数组初始化数组初始化*/for(i=2;i2

10、0;i+)fibi=fibi-1+fibi-2;for(i=0;i20;i+)printf(%6d,fibi);if(i+1)%5=0)/*5个数换行个数换行*/printf(n);return0;例例7-2源程序源程序1123581321345589144233377610987159725844181676513输输入入5个个整整数数,将将它它们们存存入入数数组组a中中,再再输输入入1个个数数x,然然后后在在数数组组中中查查找找x,如如果果找找到到,输输出出相相应应的的下下标,否那么,输出标,否那么,输出“NotFound。输入:输入:298969输出:输出:1输入:输入:298967输出

11、:输出:NotFound例例7-3在数组中查找一个给定的数在数组中查找一个给定的数14#includeintmain(void)inti,flag,x;inta5;printf(“Enter5integers:);for(i=0;i5;i+)scanf(%d,&ai);printf(“Enterx:);scanf(%d,&x);flag=0;for(i=0;i5;i+)if(ai=x)printf(Indexis%dn,i);flag=1;break;if(flag=0)printf(NotFoundn);return0;例例7-3源程序源程序Enter5integers:29819Enter

12、x:9Indexis1Enter5integers:29819Enterx:7NotFound15#includeintmain(void)inti,flag,x;inta5;printf(“Enter5integers:);for(i=0;i5;i+)scanf(%d,&ai);printf(“Enterx:);scanf(%d,&x);flag=0;for(i=0;i5;i+)if(ai=x)printf(Indexis%dn,i);flag=1;break;if(flag=0)printf(NotFoundn);return0;例例7-3思考思考(1)Enter5integers:298

13、19Enterx:9Indexis1Indexis416#includeintmain(void)inti,sub,x;inta5;printf(“Enter5integers:);for(i=0;i5;i+)scanf(%d,&ai);printf(“Enterx:);scanf(%d,&x);sub=-1;for(i=0;i5;i+)if(ai=x)sub=i;if(sub!=-1)printf(Indexis%dn,i);elseprintf(NotFoundn);return0;例例7-3思考思考(2)Enter5integers:29819Enterx:9Indexis417#inc

14、ludeintmain(void)inti,min,n;inta10;printf(“Entern:);scanf(%d,&n);printf(“Enter%dintegers:,n);for(i=0;in;i+)scanf(%d,&ai);min=a0;for(i=1;in;i+)if(aimin)min=ai;printf(minis%dn,min);return0;例例7-4(1)求最小值求最小值Entern:6Enter6integers:29-1816minis-118输入输入n(n10),再再输入输入n个数个数,输出最小值和输出最小值和它所对应的下标。它所对应的下标。用用index

15、记录最小值对应的下标记录最小值对应的下标aindex就是最小值就是最小值例例7-4(2)求最小值及其下标求最小值及其下标19#includeintmain(void)inti,index,n;inta10;printf(“Entern:);scanf(%d,&n);printf(“Enter%dintegers:,n);for(i=0;in;i+)scanf(%d,&ai);index=0;for(i=1;in;i+)if(aiaindex)index=i;printf(minis%dtsubis%dn,aindex,index);return0;求最小值及下标求最小值及下标Entern:6E

16、nter6integers:29-1816minis-1subis220输入输入n(n10),再再输入输入n个数个数,将最小值与第将最小值与第一个数交换,输出交换后的一个数交换,输出交换后的n个数。个数。用用index记录最小值对应的下标记录最小值对应的下标aindex就是最小值就是最小值最小值与第一个数交换最小值与第一个数交换aindexa0例例7-4(3)交换最小值交换最小值21例例7-1选择法排序选择法排序35281输入输入n(n10),再再输入输入n个数个数,用选择法将它们从小到大用选择法将它们从小到大排序后输出。排序后输出。设设n=535281(1)15283(2)2583(3)38

17、5(4)582235281(n=5)5个数个数(a0a4)中找最小数,与中找最小数,与a0交换交换(1)15283a4a04个数个数(a1a4)中找最小数,与中找最小数,与a1交换交换(2)12583a2a13个数个数(a2a4)中找最小数,与中找最小数,与a2交换交换(3)12385a4a22个数个数(a3a4)中找最小数,与中找最小数,与a3交换交换(4)12358a4a3选择法选择法(1)23(1)n个数个数(a0an-1)中找最小数,与中找最小数,与a0交换交换(2)n-1个数个数(a1an-1)中找最小数,与中找最小数,与a1交换交换(n-1)2个个数数(an-2an-1)中中找找最

18、最小小数数,与与an-2交交换换(1)5个数个数(a0a4)中找最小数,与中找最小数,与a0交换交换(2)4个数个数(a1a4)中找最小数,与中找最小数,与a1交换交换(3)3个数个数(a2a4)中找最小数,与中找最小数,与a2交换交换(4)2个数个数(a3a4)中找最小数,与中找最小数,与a3交换交换选择法选择法(2)24流程图流程图输入数组ak=0kn-1aiaindexindex=i假(0)假(0)真(非0)真(非0)i=i+1交换aindex和ak输出数组aindex=ki=k+1k=k+1in假(0)25选择法排序选择法排序(程序段程序段)for(k=0;kn-1;k+)index=

19、k;for(i=k+1;in;i+)if(aiaindex)index=i;temp=aindex;aindex=ak;ak=temp;Entern:5Enter10integers:35281Aftersorted:1235826将将1个个3*2的的矩矩阵阵存存入入1个个3*2的的二二维维数数组组中中,找找出出最最大大值值以以及及它它的的行行下下标标和和列列下下标标,并并输输出出该矩阵。该矩阵。7.2.1程序解析程序解析7.2.2二维二维数组的定义和引用数组的定义和引用7.2.3二维二维数组的初始化数组的初始化7.2.4使用二维数组编程使用二维数组编程7.2找出矩阵中最大值所在的位置找出矩阵

20、中最大值所在的位置277.2.1程序解析求矩阵的最大值程序解析求矩阵的最大值例例7-5将将1个个3*2的矩阵存入的矩阵存入1个个3*2的二维的二维数组中,找出最大值以及它的行下标和列数组中,找出最大值以及它的行下标和列下标,并输出该矩阵。下标,并输出该矩阵。row记录最大值的行下标记录最大值的行下标col最大值的列下标最大值的列下标arowcol就是最大值就是最大值28例例7-5源程序源程序intmain(void)intcol,i,j,row;inta32;printf(“Enter6integers:n);for(i=0;i3;i+)for(j=0;j2;j+)scanf(%d,&aij)

21、;for(i=0;i3;i+)for(j=0;j2;j+)printf(%4d,aij);printf(n);row=col=0;for(i=0;i3;i+)for(j=0;jarowcol)row=i;col=j;printf(max=a%d%d=%dn,row,col,arowcol);return0;Enter6integers:3210-96-13210-96-1max=a10=1029二维数组二维数组多维数组的空间想象多维数组的空间想象二维数组:二维数组:一个表格或一个平面矩阵一个表格或一个平面矩阵一维数组:一维数组:一列长表或一个向量一列长表或一个向量多维数组:多维数组:多维空间的

22、一个数据列阵多维空间的一个数据列阵三维数组:三维数组:三维空间的一个方阵三维空间的一个方阵307.2.2二维数组的定义和引用二维数组的定义和引用1、定义、定义类型名类型名数组名数组名行长度行长度列长度列长度inta32;定义定义1个二维数组个二维数组a,3行行2列,列,6个元素个元素intb510;定义定义1个二维数组个二维数组a,5行行10列,列,50个元素个元素312、引用、引用数组元素的引用:数组元素的引用:数组名数组名行下标行下标列下标列下标行下标和列下标:整型表达式行下标和列下标:整型表达式行下标的取值范围是行下标的取值范围是0,行长度,行长度-1列下标的取值范围是列下标的取值范围是

23、0,列长度,列长度-1inta32;3行行2列,列,6个元素个元素a00a01a10a11a20a21下标不要越界下标不要越界32二维数组在内存中的存放方式二维数组在内存中的存放方式inta32;3行行2列,列,6个元素个元素表示表示1个个3行行2列的矩阵列的矩阵a00a01a10a11a20a21二维数组的元素在内二维数组的元素在内存中按行存中按行/列方式存列方式存放放a00a01a10a11a20a21337.2.3二维数组的初始化二维数组的初始化1、分行分行赋初值赋初值inta33=1,2,3,4,5,6,7,8,9;staticintb43=1,2,3,4,5;数组数组a1234567

24、89数组数组b1230004500002、顺序赋初值、顺序赋初值inta33=1,2,3,4,5,6,7,8,9;staticintb43=1,2,3,0,0,0,4,5;34省略行长度省略行长度对全部元素都赋了初值,对全部元素都赋了初值,inta3=1,2,3,4,5,6,7,8,9;或分行赋初值时,在初值表中列出了全部行或分行赋初值时,在初值表中列出了全部行staticintb3=1,2,3,4,5,数组数组a123456789数组b1 2 30 0 04 5 00 0 0357.2.4使用二维数组编程使用二维数组编程行行下下标标和和列列下下标标分分别别做做为为循循环环变变量量,通通过过二

25、重循环二重循环,遍历二维数组,遍历二维数组通常将行下标做为外循环的循环变量通常将行下标做为外循环的循环变量 列下标列下标 内循环内循环36定义定义1个个3*2的二维数组的二维数组a,数组元素的值由,数组元素的值由下式给出,按矩阵的形式输出下式给出,按矩阵的形式输出a。aij=i+j0i2,0j1例例7-6生成一个矩阵并输出生成一个矩阵并输出inta32;a00a01a10a11a20a2101122337#includeintmain(void)inti,j;inta32;for(i=0;i3;i+)for(j=0;j2;j+)aij=i+j;for(i=0;i3;i+)for(j=0;j2;

26、j+)printf(%4d,aij);printf(n);return0;a00a01a10a11a20a21i=0j=0i=0j=1i=1j=0i=1j=1i=2j=0i=2j=1例例7-6源程序源程序01122338二维数组的输入二维数组的输入例例7-5中,中,inta32;for(i=0;i3;i+)for(j=0;j2;j+)scanf(%d,&aij);a00a01a10a11a20a21for(j=0;j2;j+)for(i=0;i3;i+)scanf(%d,&aij);Enter6integers:3210-96-13210-96-1max=a10=10Enter6integer

27、s:3210-96-13-92610-1max=a20=1039intaNN;N是正整数是正整数aij:i、j的取值范围的取值范围0,N-1用二维数组用二维数组a表示表示N*N方阵时,对应关系方阵时,对应关系:a00a01a02主对角线主对角线a10a11a12上三角上三角a20a21a22下三角下三角付对角线付对角线矩阵与二维数组矩阵与二维数组i=ji=ji+j=N-140输入一个正整数输入一个正整数n(1n6),根据下式生成,根据下式生成1个个n*n的的方阵,然后将该方阵转置行列互换后输出。方阵,然后将该方阵转置行列互换后输出。aij=i*n+j+10in-1,0jn-1分析:分析:int

28、a66;n=3时时例例7-7方阵转置方阵转置123456789147258369a01a10a02a20a12a21aijaji41#includeintmain(void)inti,j,n,temp;inta66;printf(“Entern:);scanf(%d,&n);/*给二维数组赋值给二维数组赋值略略*/*行列互换行列互换*/for(i=0;in;i+)for(j=0;jn;j+)if(i=j)/*只遍历上三角阵只遍历上三角阵*/temp=aij;aij=aji;aji=temp;/*按矩阵的形式输出按矩阵的形式输出a略略*/return0;例例7-7源程序源程序42/*行列互换行列

29、互换*/for(i=0;in;i+)for(j=0;jn;j+)if(i=j)temp=aij;aij=aji;aji=temp;1 2 3 4 5 67 8 9主对角线:主对角线:i=j上三角:上三角:i=ji=0147256389i=1147258369例例7-7说明说明for(j=i+1;jn;j+)43/*行列互换行列互换*/for(i=0;in;i+)for(j=0;jn;j+)temp=aij;aij=aji;aji=temp;123456789例例7-7思考思考i=0147256389i=1127458369i=212345678944例例7-8日期计算日期计算自自定定义义1个个

30、函函数数day_of_year(year,month,day),计计算算并并返返回回年年year、月月month和和日日day对对应应的的是是该该年年的的第几天。第几天。day_of_year(2000,3,1)返回返回61day_of_year(1981,3,1)返回返回60分析:分析:月月01231112非闰年非闰年03128313031闰年闰年03129313031inttab213=0,31,28,31,30,31,30,31,31,30,31,30,310,31,29,31,30,31,30,31,31,30,31,30,3145例例7-8源程序源程序intday_of_year(i

31、ntyear,intmonth,intday)intk,leap;inttab213=0,31,28,31,30,31,30,31,31,30,31,30,310,31,29,31,30,31,30,31,31,30,31,30,31;leap=(year%4=0&year%100!=0)|year%400=0;for(k=1;kmonth;k+)day=day+tableapk;returnday;46例例7-9输输入入一一个个以以回回车车结结束束的的字字符符串串(少少于于10个个字字符符),它它由由数数字字字字符符组组成成,将将该该字字符符串串转换成整数后输出。转换成整数后输出。7.3.1

32、程序解析程序解析7.3.2一维字符数组一维字符数组7.3.3字符串字符串7.3进制转换进制转换477.3.1程序解析程序解析-进制转换进制转换#includeintmain(void)inti,n;chars10;printf(“Enterastring:);/*输入字符串输入字符串*/i=0;while(si=getchar()!=n)i+;si=0;n=0;/*将字符串转换为整数将字符串转换为整数*/for(i=0;si!=0;i+)if(si=0)n=n*10+(si-0);elsebreak;printf(digit=%dn,n);return0;Enterastring:123dig

33、it=123487.3.2一维字符数组一维字符数组n字符串的存储和运算可以用一维字符数组实现字符串的存储和运算可以用一维字符数组实现n一维字符数组的定义、引用、初始化与其他类一维字符数组的定义、引用、初始化与其他类型的一维数组一样。型的一维数组一样。charstr80;定义一个含有定义一个含有80个字符型元素的数组个字符型元素的数组strchart5=H,a,p,p,y;初始化数组初始化数组t t0 t1 t4tHappy输出数组输出数组t的所有元素的所有元素for(i=0;i对字符数组的操作对字符数组的操作521.字符串的存储数组初始化字符串的存储数组初始化字符串可以存放在一维字符数组中字符

34、串可以存放在一维字符数组中staticchars6=H,a,p,p,y,0;字符数组初始化:用字符串常量字符数组初始化:用字符串常量staticchars6=Happy;staticchars6=Happy;数组长度数组长度=字符串的有效长度字符串的有效长度+1chart5;Happy能存入能存入t吗吗?s0 s1 s5sHappy053字符串的存储字符串的存储autochars80=Happy;字符串遇字符串遇0结束结束第一个第一个0前面的所有字符和前面的所有字符和0一起构成了字一起构成了字符串符串Happy0之后的其他数组元素与该字符串无关之后的其他数组元素与该字符串无关s0 s1 s5s

35、H a p p y 0 ? ?字符串由有效字符和字符串结束符 0 组成 542.对字符串的操作对字符串的操作n把字符串放入一维字符数组存储把字符串放入一维字符数组存储n对字符串的操作对字符串的操作=对字符数组的操作对字符数组的操作n普通字符数组:数组元素的个数是确定的,普通字符数组:数组元素的个数是确定的,一般用下标控制循环一般用下标控制循环n字符串:没有显式地给出有效字符的个数,字符串:没有显式地给出有效字符的个数,只规定在字符串结束符只规定在字符串结束符0之前的字符都之前的字符都是字符串的有效字符,一般用结束符是字符串的有效字符,一般用结束符0来控制循环来控制循环n循环条件:循环条件:si

36、!=055计算字符串的有效长度,并输出该字符串。计算字符串的有效长度,并输出该字符串。字符串的有效长度字符串的有效长度:有效字符的个数有效字符的个数数组中第一个数组中第一个0前面的字符个数前面的字符个数例例6-10计算计算字符串的有效长度字符串的有效长度s0 s1 s5sH a p p y 0 ? ?56#includeintmain(void)inti=0,len;charstr80=Happy;/*初始化初始化*/for(i=0;stri!=0;i+);len=i;printf(len=%dn,len);for(i=0;stri!=0;i+)/*输出字符串输出字符串*/putchar(st

37、ri);return0;例例7-10源程序源程序s0 s1 s5sHappy0?循环条件循环条件len=5Happy57for(i=0;si!=0;i+)putchar(si);for(i=0;i80;i+)putchar(si);for(i=0;i对字符数组的操作对字符数组的操作n存储存储n数组初始化数组初始化nstaticchars6=Hello;n赋值赋值ns0=a;s1=0;n或者或者nstaticchars6=a;a 2 个个字字符符 a 和和0a1个字符常量个字符常量区分区分a和和a59字符串的输入字符串的输入字符串的存储字符串的存储字符数组初始化:字符数组初始化:staticch

38、ars6=Happy;赋值:赋值:s0=a;s1=0;输入输入0代表空操作,无法输入代表空操作,无法输入输入时,设定一个输入时,设定一个输入结束符输入结束符将输入结束符转换为字符串结束符将输入结束符转换为字符串结束符060输入一个以回车结束的字符串输入一个以回车结束的字符串(少于少于80个字个字符符),统计其中数字字符的个数。,统计其中数字字符的个数。分析:分析:数组长度取上限数组长度取上限80以以n做为输入结束符做为输入结束符例例7-11统计字符统计字符61#includeintmain(void)intcount,i;charstr80;printf(“Enterastring:);i=0

39、;while(stri=getchar()!=n)i+;stri=0;/*输入结束符输入结束符字符串结束符字符串结束符*/count=0;for(i=0;stri!=0;i+)if(stri=0)count+;printf(count=%dn,count);return0;例例7-11源程序源程序字符串的输入字符串的输入Enterastring:Its512?count=3如何改变输入结束符如何改变输入结束符? ?能省略能省略stri=0吗?吗?012345678sIts5120?62例例7-9进制转换进制转换#includeintmain(void)inti,n;chars10;printf

40、(“Enterastring:);/*输入字符串输入字符串*/i=0;while(si=getchar()!=n)i+;si=0;n=0;/*将字符串转换为整数将字符串转换为整数*/for(i=0;si!=0;i+)if(si=0)n=n*10+(si-0);elsebreak;printf(digit=%dn,n);return0;Enterastring:123digit=1230123s1230?63进制转换方法进制转换方法n=0;for(i=0;si!=0;i+)if(si=0)n=n*10+(si-0);elsebreak;0123s1230?isisi-0n=n*10+(si-0)

41、0110*10+1=11221*10+2=1223312*10+3=12330Enterastring:1#2#3digit=64字符串小结字符串小结字符串:一个特殊的一维字符数组字符串:一个特殊的一维字符数组0把字符串放入一维字符数组存储把字符串放入一维字符数组存储数组长度足够数组长度足够字符数组初始化:字符数组初始化:staticchars80=Happy;赋值:赋值:s0=a;s1=0;输入:输入:输入结束符输入结束符=字符串结束符字符串结束符0i=0;while(si=getchar()!=n)i+;si=0; s0 s1 s5sHappy0?65把字符串放入一维字符数组存储把字符串放

42、入一维字符数组存储对字符串的操作对字符串的操作=对字符数组的操作对字符数组的操作只针对字符串的有效字符和字符串结束符只针对字符串的有效字符和字符串结束符0检测检测for(i=0;si!=0;i+)putchar(si); s0 s1 s5sHappy0?66本章要点本章要点n什么是数组什么是数组?为什么要使用数组为什么要使用数组?如何定义数组如何定义数组?n如何引用数组元素如何引用数组元素?n二维数组的元素在内存中按什么方式存放二维数组的元素在内存中按什么方式存放?n什么是字符串什么是字符串?字符串结束符的作用是什么字符串结束符的作用是什么?n如如何何实实现现字字符符串串的的存存储储和和操操作作,包包括括字字符符串串的的输输入和输出入和输出?n怎怎样样理理解解C语语言言将将字字符符串串作作为为一一个个特特殊殊的的一一维维字字符符数组数组?67

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号