1 / 65
文档名称:

《高级语言程序设计教学课件》第6章数组3.ppt

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

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

分享

预览

《高级语言程序设计教学课件》第6章数组3.ppt

上传人:wwlgqnh 2022/8/4 文件大小:2.10 MB

下载得到文件列表

《高级语言程序设计教学课件》第6章数组3.ppt

相关文档

文档介绍

文档介绍:第六章 数组
 一维数组
 二维数组及多维数组
 字符数组和字符串
第1页,共65页。
*
一维数组元素的输入
int i , a[6];
for(i= 0; i<6; i+ +)
st;}
i
j
第10页,共65页。
*
【例】已知十个整数升序排列,现输入整数x, 要求将x插入到合适的位置,使得数列依然升序
分析
1. 找到插入位置p (默认插最后,设x为18)
2. 将插入位置p之后的元素后移;
3. 将x插入位置p
0
1
2
3
4
5
6
7
8
9
10
1
4
7
9
12
15
17
20
21
30
18
p
18
18
18
18
18
18
18
30
21
20
18
for(i=0,p=10; i<10; i++)
if(x<a[i])
{ p=i; break; }
/*后移*/
for(i=10; i>=p+1; i--)
a[i]=a[i-1];
a[p]=x;
第11页,共65页。
查找并删除
a[i]=a[i+1]
/*找到后前移,且数组元素个数减少*/
if( flag )
{
for( i=p; i<n-1; i++ )
a[i]=a[i+1];
n=n-1;
}
第12页,共65页。
*
【例6-6】输入一个正整数n(1<n≤10),再输入n个整数,用选择法将它们从小到大排序后输出
for(k=0; k<n-1; k++)
{
min=k;
for(i=k+1; i<n; i++)
if(a[i]<a[min])
min=i;
temp=a[min];
a[min]=a[k];
a[k]=temp;
}
第13页,共65页。
*
排序问题(冒泡排序法及改进)
for(i=0; i<n-1; i++)
{
for(j=0; j<n-i-1; j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=0; i<n-1; i++)
{
flag=0; //无交换0
for(j=0; j<n-i-1; j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
flag=1;
}
}
if(!flag) break;
//无交换,排序完成
}
第14页,共65页。
*
思考问题:
在数学中我们常常会用到矩阵 ,它的结构如下:
怎样用一种数据结构来表示矩阵呢?
第15页,共65页。
*
 二维数组及多维数组
1、二维数组的定义
2、二维数组理解
3、二维数组元素的引用
4、二维数组元素的初始化
5、二维数组的应用
第16页,共65页。
*
1、二维数组的定义
定义方式: 
数据类型 数组名[常量表达式1][常量表达式2];
数组元素的存放顺序
原因:内存是一维的
二维数组:按行序优先
例 int a[3][4]; float b[2][5];
int a[3,4]; 
行数
下标从0开始
列数
下标从0开始
元素个数=行数*列数
int a[3][2]
5
4
3
2
1
0
a[2][1]
a[2][0]
a[1][1]
a[1][0]
a[0][1]
a[0][0]
第17页,共65页。
*
例 int a[3][4];
每个元素a[i]是由包含4个元素的一维数组组成
2、二维数组的理解
0
a[0][0]
1
a[0][1]
2
a[0][2]
3
a[0][3]