1 / 48
文档名称:

C语言程序设计-谭浩强-第7章_数组.ppt

格式:ppt   页数:48页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言程序设计-谭浩强-第7章_数组.ppt

上传人:陈晓翠 2011/10/23 文件大小:0 KB

下载得到文件列表

C语言程序设计-谭浩强-第7章_数组.ppt

文档介绍

文档介绍:问题:给一组数排序,这组数该如何存放呢???这些数据如何存放才便于排序829456376171888888888811111111111111**********?这便是本章所要解决的问题第七章数组1本章要点掌握一维、二维数组的定义和引用方法、存储结构和初始化方法。掌握有关一维数组的有关算法。掌握数组的运算。§:有如下几组数据,它们分别该如何存储呢?是一组具有相同数据类型的数据的有序集合。数组一个班学生的学****成绩一行文字一个矩阵这些数据的特点是:1、具有相同的数据类型2、使用过程中需要保留原始数据C语言为这些数据,提供了一种构造数据类型:数组。3一维数组的定义定义方式:数据类型数组名[常量表达式];合法标识符表示元素个数下标从1开始不能使用变量说明数组大小[]:数组运算符单目运算符优先级(1)左结合不能用()例inta[6];a[0]0145a[1]a[2]a[3]a[4]a[5]23a编译时分配连续内存内存字节数=数组元素个数*sizeof(元素数据类型)数组名表示内存首地址,是地址常量4一维数组的引用数组必须先定义,后使用只能逐个引用数组元素,不能一次引用整个数组数组元素表示形式:数组名[下标]其中:下标可以是常量或整型表达式例inti=15;intdata[i];(不能用变量定义数组维数)例inta[10];printf(“%d”,a);()必须for(j=0;j<10;j++)printf(“%d\t”,a[j]);()例intdata[5];data[5]=10;(C语言对数组不作越界检查,使用时要注意)例从键盘输入5个整数,保存在数组中,并输出大于0的数#include<>void main(){inti,a[5];for(i=0;i<5;i++)scanf(“%d”,&a[i]);printf(“\n”);for(i=0;i<5;i++)if(a[i]>0)printf(“%4d”,a[i]);}floata[0]; /*数组大小为0没有意义*/5一维数组的初始化初始化方式在定义数组时,为数组元素赋初值(在编译阶段使之得到初值)inta[5]={1,2,3,4,5};等价于:a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5;说明:数组不初始化,其元素值为随机数对static数组元素不赋初值,系统会自动赋以0值当全部数组元素赋初值时,可不指定数组长度如inta[5]={6,2,3};等价于:a[0]=6;a[1]=2;a[2]=3;a[3]=0;a[4]=0;如inta[3]={6,2,3,5,1};()staticinta[5];等价于:a[0]=0;a[1]=0;a[2]=0;a[3]=0;a[4]=0;只给部分数组元素赋初值inta[]={1,2,3,4,5,6};编译系统根据初值个数确定数组维数如果想使一个数组中全部元素值为0,可以写成:inta[10]={0,0,0,0,0,0,0,0,0,0};或inta[10]={0};不能写成:inta[10]={0*10};6程序举例例读10个整数存入数组,找出其中最大值和最小值步骤:::(a)先令max=min=x[0](b)依次用x[i]和max,min比较(循环)若max<x[i],令max=x[i]若min>x[i],令min=x[i]:max和min#include<>#defineSIZE10main(){intx[SIZE],i,max,min;printf("Enter10integers:\n");for(i=0;i<SIZE;i++){printf("%d:",i+1); scanf("%d",&x[i]);}max=min=x[0];for(i=1;i<SIZE;i++){if(max<x[i])max=x[i];if(min>x[i])min=x[i];}printf("Maximumvalueis%d\n",max);printf("Minimumvalueis%d\n",min);}7例输入10个整数,分别按顺序和逆序输出。#include<>voidmain(){inti,a[10];printf("input10numbers:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(i=0;i<=9;i++)printf("%d",a[i]);printf("\n");for(i=9;i>=0;i--)printf("%d",a[i]);}程序的运行情况