c语言 数组ppt

c语言 数组ppt

ID:21752522

大小:1.47 MB

页数:70页

时间:2018-10-20

c语言 数组ppt_第1页
c语言 数组ppt_第2页
c语言 数组ppt_第3页
c语言 数组ppt_第4页
c语言 数组ppt_第5页
资源描述:

《c语言 数组ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章数组内容提要数组定义和基本操作;常用算法:求最大最小值、排序、查找等;用字符数组存取字符串;使用字符串处理函数处理字符串为什么引入数组保存大量同类型的相关数据如矩阵运算,表格数据等一维数组(Array)的定义类型数组名[长度];长度为常量表达式,不可以是变量(但C99提供了动态数组)例:inta[10];定义一个有10个元素的数组,每个元素的类型均为int使用a[0]、a[1]、a[2]、……、a[9]这样的形式访问每个元素。系统会在内存分配连续的10个int空间给此数组a就是此数组的首地址intn=5;

2、inta[n];×//长度n不可以是变量一维数组(Array)的定义类型数组名[长度];长度为常量表达式,不可以是变量(但C99提供了动态数组)例:inta[10];定义一个有10个元素的数组,每个元素的类型均为int系统会在内存分配连续的10个int空间给此数组a是数组名,同时也代表着此数组的首地址×//长度n不可以是变量一维数组的初始化inta[5]={12,34,56,78,9};inta[5]={12};inta[]={12,34,56,78,9};123456789a[0]a[1]a[2]a[3]a[

3、4]120000a[0]a[1]a[2]a[3]a[4]123456789a[0]a[1]a[2]a[3]a[4]×√√√一维数组的赋值数组赋值和普通变量赋值一样只能逐个对数组元素进行操作!不能整体赋值!切忌下标越界!inta[4];for(i=0;i<4;i++)a[i]=2*i+1;√√×inta[4],b[4];……………;a=b;inta[4];a[0]=1;a[1]=3;a[2]=5;a[3]=7;//a和b是数组首地址,是地址常量//地址常量a不可以被赋值如何使两个一维数组的值相等8inta[4]=

4、{1,2,3,4},b[4];方法1:逐个元素赋值b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];方法2:通过循环赋值inti;for(i=0;i<4;i++)b[i]=a[i];一维数组的输入和输出inta[10],i=0;scanf(“%d”,&a[i]);//方法1:输入第i个数组元素for(i=0;i<10;i++)scanf("%d",&a[i]);//方法2:循环输入数组元素inta[10],i=0;printf(“%d”,a[i]);//方法1:输出第i个数组元素f

5、or(i=0;i<10;i++)printf("%d",a[i]);//方法2:循环输出数组元素耳听为虚,眼见为实一维数组在内存中是连续存放的一维数组名就是此数组首元素的地址数组下标越界的严重性证明:数组在内存中是连续分布的;数组名就是数组的首地址inti;inta[6]={1,3,5,7,9,11};for(i=0;i<=5;i++)printf("a[%d]的值是%2d,地址是%p",i,a[i],&a[i]);printf(“a的size是%d”,sizeof(a));printf(“a的值是%p

6、”,a);//a是数组名,也是首元素的地址//a的值和&a[0]的值相等后果很严重!下标越界inti,a[6];for(i=1;i<=6;i++){a[i]=0;printf("a[%d]的值是%d",i,a[i]);}总是出现莫名其妙的错误,且不容易被发现!越界下标将访问数组以外的空间,可能带来严重后果!C语言不提供下标越界检查,所以一定要注意!数组的使用数组的下标都是从0开始对数组每个元素的使用与普通变量无异可以用任意表达式作为下标,动态决定访问哪个元素for(i=0;i

7、=2*i;下标越界是大忌!使用大于最大下标的下标,将访问数组以外的空间。那里的数据是未知的,可能带来严重后果sizeof可以用来获得数组大小Fibonacci数列1,1,2,3,5,8,13,21,34,55…兔子繁殖问题(数组版)兔子问题(数组版)#include#defineYEAR_MONTH12intmain(){intf[YEAR_MONTH+1]={0,1,1};intmonth;for(month=3;month<=YEAR_MONTH;month++){f[month]=f[m

8、onth-1]+f[month-2];}for(month=1;month<=YEAR_MONTH;month++){printf("%dt",f[month]);}retuun0;}反转并打印数组#include<……>#defineN10intmain(){inti,temp,a[N];srand(time(NULL));for(i=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。