第5章数组程序设计_第1页
第5章数组程序设计_第2页
第5章数组程序设计_第3页
第5章数组程序设计_第4页
第5章数组程序设计_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 u5.1 一维数组程序设计 u5.2字符串操作u5.3二维数组程序设计 u5.4 数组应用l5.1.1 逆序输出数据程序 l5.1.2 一维数组的定义 l5.1.3 数值型一维数组的输入和输出 l5.1.4 数值型一维数组的初始化 l5.1.5 字符型一维数组的初始化 l5.1.6 一维数组的存储 2. 部分元素的初始化l格式数据类型 数组名数组长度=数组前部元素值表int b10=1,2,3 #includeint main() long int fib21; int i; fib1= fib2=1; for(i=3;i=20;i+)fibi=fibi-1+fibi-2; for(i=1;

2、i=20;i+) printf(%-10ld,fibi);if(i%5=0)printf(n); return 0; l字符型数组是数据类型为字符型的数组,用于存储字符串,每一个元素存放一个字符常量。 对字符数组初始化时,通常使用转义字符常量0作为末尾元素值。可以使用一个字符串常量为字符数组赋初值。当使用这种方式对字符数组初始化时,系统自动在字符串尾部增加一个结束标志0,使元素string7自动获得0结束符,各元素初始化情况与相同。 初始化时,省略对数组长度的说明后,数组的实际长度由系统根据初始化的形式确定。数组string的长度为8。 数组a 10 a0 数组word H word0 20

3、a1 e word1 30a2 l word2 40a3 l word3 50a4 o word4 60a5 i word5 固定长度的字符串具有确切的字符个数,可以使用循环控制结构逐个字符输入或输出字符串,一般使用带“%c”控制符的格式化输入输出函数, 或是字符输入输出函数getchar()和putchar()。 输入一个长度是10的字符串,然后逆序输出它。 输入输出非固定长度的字符串时,一般使用带“%s”控制符的格式化输入输出函数, 或是字符串输入输出函数gets()和puts()。 输入一个长度小于50的字符串,将其中的数字字符按输入顺序存储到digital数组中,然后输出该数组。 #i

4、nclude#include#define N 50int main()char strN,digitalN;int i=0,j=0; while(stri!=0) if(stri=0&stri=9)digitalj+=stri; i+;digitalj=0; return 0; 例例5-7 将两个字符串连接为一个字符串后输出。将两个字符串连接为一个字符串后输出。#include#includeint main()char c120=China,c210= man; printf(String c1: );puts(c1); printf(String c2: );puts(c2); retu

5、rn 0; 。#include#includeint main()char c120=program,c210=example; printf(String c1: ); puts(c1); printf(String c2: ); puts(c2); return 0; 例例5-9 使用使用strcmp()函数设计一个密码验证程序。函数设计一个密码验证程序。#include#include#define N 3int main()int count=1;char word12;while(count+N+1)printf(Sorry!n);elseprintf(Continue,please

6、!n); return 0;函数及用法功能说明strlwr(s)strlwr(s)将字符串s中的大写字母转换为小写字母的函数s可以是字符数组名(字符串首地址),也可以是字符串常量。strupr(s)strupr(s)将字符串s中的小写字母转换为大写字母的函数strlen(s)strlen(s)求字符串s的长度l 程序程序#includeint main() int data34=1,2,3,4,5,6,7,8,9,10,11,12; int i,j,sum=0; for(i=0;i3;i+) for(j=0;j4;j+) sum+=dataij; printf(Sum=%dn,sum); re

7、turn; l解析 程序中使用了3行4列的二。 data数组i行j列的元素表示为dataij 。 l输入a12的值: scanf(%d,&a12);l输出a12的值: printf(%d, a12);u访问二维数组的每一个元素时,一般使用二重循环实现。访问二维数组的每一个元素时,一般使用二重循环实现。 有一个3行4列的二维数组,从键盘输入它的前两行数据,并将前两行按列求和的结果对应存储在第三行的各元素中。#includeint main() int i,j; for(i=0;i3;i+) for(j=i+1;j4;j+) aij=aji; for(i=0;i4;i+) for(j=0;j4;j

8、+) printf(%4d,aij); printf(n); return 0;l计算机根据二维数组的大小,分配一段连续的内存空间,l22数组example的存储情况 example example example00example00example01example01example10example10example11example11 待排序数列: 6 28 21 -19 5第一趟结束: 6 21 -19 5 第二趟结束: 6 -19 5 第三趟结束: -19 5 第四趟结束:#include#define N 10int main()int aN,i,j,temp;for(i=0;i

9、N;i+)scanf(%d,&ai);for(i=1;iN;i+)for(j=0;jaj+1)temp=aj;aj=aj+1;aj+1=temp;for(i=0;iN;i+)printf(%d ,ai);printf(n); return 0; top,bot,mid=(top+bot)/2#include#define N 10int main()int aN,i,x,top,bot,mid;for(i=0;iN;i+)scanf(%d,&ai);scanf(%d,&x); top=0; bot=N-1;do mid=(top+bot)/2; if(amid=x)break; else if

10、(amidx)top=mid+1; else bot=mid-1; while(top=bot);if(bottop)printf(%d: no found.n,x);elseprintf(Success! a%d is %d.n,mid,x); return 0; 18 2521 616- 19a81 36 27- 2689 16b 班级优秀人数良好人数中等人数及格人数不及格人数1班2班3班统计结果示意表#includeint main()int a,b;int ave,i,j;static int r35; for(i=0;i3;i+)for(j=1;j=5;j+) printf(Clas

11、s %d score%d(a,b): ,i+1,j);scanf(%d,%d,&a,&b); ave=(a+b)/2; switch(ave/10)case 10:case 9: ri0+; break; case 8: ri1+; break; case 7: ri2+; break; case 6: ri3+; break; default: ri4+; for(i=0;i3;i+)for(j=0;j5;j+)printf(%5d,rij);printf(n); return 0; ) ij1j () j , 1i (y) 1j , 1i (yi)j1(j 1) j , i (y且或 ) ij0j ( 1jyi11ji yi)j0(j 1ij y且或 数组中的所有元素具有相同的数据类型,数组的数据类型就是数组元素的数据类型。一维数组的定义格式:数据类型数据类型 数组名数组名数组长度数组长度;二维数组的定义格式:数据类型数据类型 数组名数组名数组行数数组行数 数组列数数组列数;数组初始化的方式有多种,可以对全部元素初始化,也可以对部分元素初始化。对于一维数组,若对全部元素初始化时,数组长度说明可以省略;对于二维数组,只允许省略行数的说明,任何情况下都不能省略对列数的说明。不管维数组的维数如何,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论