- 1.06 MB
- 2022-04-29 14:25:17 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'四章数组与指针ppt课件
第4章数组与指针及其应用4.1一维数组4.2二维数组4.3字符串4.4指针和数组4.5动态数组4.6程序举例数组用于保存大量同类型的相关数据,如矩阵运算,表格数据等。2GuangXiUniversity
4.1一维数组求数组中的最大元素----max=a[0];//假设第一个元素值最大for(j=1;jmax)max=a[j];求最大元素下标----imax=0;//imax代表最大元素下标for(j=1;ja[imax])imax=j;将最大元素放于某一特定位置(如放在最前头)----imax=0;for(j=1;ja[imax])imax=j;if(imax!=0){t=a[0];a[0]=a[imax];a[imax]=t;}9GuangXiUniversity
4.1一维数组4.1.4数组排序排序是将一组数按递增或递减的次序排列,如按学生的成绩、球赛积分等排序。常用的算法有:选择法(√)冒泡法(√)插入法快速排序法…...10GuangXiUniversity
4.1一维数组(1)选择法排序----基本思想:(a)从n个数的序列中选出最小的数(递增),与第1个数交换位置;(b)除第1个数外,其余n-1个数再按(1)的方法选出次小的数,与第2个数交换位置;(c)重复(1)n-1遍,最后构成递增序列。例4.3对存放在数组中的6个数,用选择法按递增排序。下标01~512~523~534~545for(i=0;i<5;i++){min=i;for(j=i+1;j<6;j++)if(a[j]a[j]){temp=a[j-1];a[j-1]=a[j];a[j]=temp;}思考:当数据未交换,说明数组已有序,如何结束排序?12GuangXiUniversity
4.2二维数组4.2.1二维数组的定义和初始化(1)数组的定义形式:数据类型数组名[常量表达式1][常量表达式2];如:floata[2][3];a[0][0] a[0][1] a[0][2]a[1][0] a[1][1] a[1][2]以“先行后列”的规则连续存放:序号=当前行号*每行列数+当前列号序号:01234513GuangXiUniversity
4.2二维数组(2)数组的初始化(a)按在内存排列顺序对所有元素赋初值。(b)按行给所有元素赋初值,每一行的数据放于一个花括号内。(c)按行给部分元素赋初值,省略的元素初值此时自动为0。对应的数组b为:(d)按行赋初值也可省略第一维的长度。对应的数组c为:inta[2][3]={1,2,3,4,5,6};或inta[][3]={1,2,3,4,5,6};inta[2][3]={{1,2,3},{4,5,6}};intb[3][4]={{1,2},{0,3,4},{0,0,5}};intc[][3]={{1},{0},{2}};14GuangXiUniversity
4.2二维数组4.2.2二维数组的基本操作(1)数组的输入、输出例4.5输入两个矩阵A、B的值,求C=A+B。分析:(1)A、B矩阵相加,其实质是将两矩阵的对应元素相加。相加的条件是有相同的行、列数。(2)输入可以通过空格、Tab符和回车符控制;输出内循环不换行,出了内循环输出endl换行。15GuangXiUniversity
4.2二维数组#include"iostream.h"#include"iomanip.h"voidmain(){inta[2][3],b[2][3],c[2][3],i,j;for(i=0;i<2;i++)for(j=0;j<3;j++)cin>>a[i][j];for(i=0;i<2;i++)for(j=0;j<3;j++)cin>>b[i][j];for(i=0;i<2;i++)//A+B矩阵,每个对应元素相加for(j=0;j<3;j++)c[i][j]=a[i][j]+b[i][j];for(i=0;i<2;i++){for(j=0;j<3;j++)cout<max){max=a[i][j];imax=i;jmax=j;}17GuangXiUniversity
4.2二维数组(3)矩阵转置:将矩阵以主对角线为轴线,将元素的行和列位置调换。如对3×3方阵转置123147a=456b=258789369for(i=0;i<3;i++)for(j=0;j