一 使用数组的目的:可以让多个数据使用一个变量,用不同的下标加以区分;

数组的需要先定义后使用,int a[10];//定义了一个长度为10,存放int型数据的数组;以下定义是错误的:

int a[a+1];//不能有表达式

int b[n];//不能有字母

int n=10;

int a[n];//错误,有字母

总结:[ ]中的值只能是正整数

二 数组的引用:通过下标引用

int a[10];这十个元素分门别为a[0]至a[9];引用时注意不要下标越界;这十个数在内存中连续存放

三 数组的赋值:数组的赋值需要在未定义完时候进行,如 int a[10]={1,2,4};不可以写成 :

int a[10];

a[10]={1,2};

int a[10]={1,2};//不完全赋值,a[0]到a[1]值分别为1,2,其余均为0(注意不是垃圾数据);

定义数组不声明数组个数的时候必须赋初值,数组个数取决于初值个数;

int a[]={1,1,1};//数组个数为3

四 数组的遍历使用for语句;

数据在数组中存储的三个特点:

1.从0开始;

2.连续存放;

3.上述两个特点必须动态满足(不论删除数据还是增加数据);

五 对于数组的输入,插入,删除,求均值,排序的讲解:

编写程序,对若干名同学成绩进行处理,包括输入成绩,删除成绩,插入成绩,求平均值,按升序排序:

输入成绩:因为输入学生不定,所以不能提前预知输入的个数,所以我们规定当输入为 -1 时候结束输入

程序代码:

printf("请输入数据(当输入-1时候结束):\n");

scanf("%d", &num);

for(i=0;i!=num;i++)

{

score[i]=num;

printf("请输入数据(当输入-1时候结束):\n");

scanf("%d", &num);

}

插入成绩:插入成绩分两步完成 第一步是查找 第二步插入(找到原有成绩,并将新成绩插到原有成绩之前)

1.查找的第一步是找到原有成绩,第二步是找到其下标i,第三步是输入要插入的成绩

2.插入采用前插法,具体查找的过程:

已知:插入成绩 newScore

数组的有效元素:count

插入点下标: j

插入成绩的伪代码:

for(i=count;i>j;i--)

{

score[i]=score[i-1];

}

score[i]=newScore;

count;

将倒数第二赋值给倒数第一,将倒数第三赋值给倒数第二,找到将原有插入点下标的数据赋值给后一位,留下的空位由插入点数据补充;

3.查找的目的是找到旧成绩的下标

伪代码:

for(i=0;i<count&&score[i]!=oldScore;i++)

;

if(i>count)

printf("插入错误");

else

;//真正插入的代码

删除成绩:

1.输入要删除的成绩

2.找到这个成绩(从头依次查找)

3.删除这个成绩(将之后的成绩依次提前一位)

伪代码如下

printf("请输入删除的成绩:\n");

scanf("%d" , &delescore);

for(i = 0; i<count&&score[i]! = delescore;i++)

;

if(i>count)

printf("未有要删除的成绩\n");

else

{

for(;i<count-1;i++)

{

score[i]=score[i+1];

}

}

求和:相加除以人数即可:

按升序排序:将一堆混乱的数据从新有小到大排序

for(i =0;i < count ;i++)//控制放置最小的数字

for(j = i+1;j < count ;j++)

{

if(score[i] >score[j])//将小的放前面

{

num = score[j];

score[j] =score[i];

score[i] = num;

}

}