lesson10数据的组织结构一二维数组与排序

上传人:沈*** 文档编号:175145069 上传时间:2022-12-18 格式:PPTX 页数:31 大小:212.20KB
收藏 版权申诉 举报 下载
lesson10数据的组织结构一二维数组与排序_第1页
第1页 / 共31页
lesson10数据的组织结构一二维数组与排序_第2页
第2页 / 共31页
lesson10数据的组织结构一二维数组与排序_第3页
第3页 / 共31页
资源描述:

《lesson10数据的组织结构一二维数组与排序》由会员分享,可在线阅读,更多相关《lesson10数据的组织结构一二维数组与排序(31页珍藏版)》请在装配图网上搜索。

1、2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作学习目标学习目标:3 1掌握二维数组的使用掌握二维数组的使用2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3二维数组二维数组3数学概念矩阵:数学概念矩阵:90 80 70 9997 83 92 6591 85 88 76例:例:2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3二维数组二维数组3日常生活例日常生活例子表格:子表格:123456789101112131415

2、162022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3二维数组二维数组3特点:特点:按行、列分布,并且每个数据需要由两按行、列分布,并且每个数据需要由两个位置确定:个位置确定:一个行位置,一个列位置一个行位置,一个列位置C语言中实现方法:语言中实现方法:二维数组二维数组2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3二维数组二维数组3在在C语言中如何实现语言中如何实现?类型类型 数组名数组名 行长度行长度列长度列长度int array 34例:例:float d 35;int a66;char s410;所有元素都是所有元素都是

3、int数组名数组名3行行4列列注意:必须是常量注意:必须是常量array 2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3二维数组二维数组3二维数组的引用二维数组的引用123456789 10 11 127第第1行行第第2列列数组数组aa1 2数组名数组名行下标行下标列下标列下标 2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3二维数组二维数组3二维数组初始化:二维数组初始化:在定义二维数组时,给元素赋初值在定义二维数组时,给元素赋初值形式形式1:int a23=1,2,3,4,5,6;形式形式2:int a23=1,2,3,

4、4,5,6;形式形式3:int a 3=1,2,3,4,5,6;形式形式4:int a2=1,2,3,4,5,6;错误!错误!2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3二维数组操作二维数组操作4二维数组元素的引用及根本操作二维数组元素的引用及根本操作数组的赋值数组的赋值 for(i=0;iROWS;i+)for(i=0;iROWS;i+)for(j=0;jCOLS;j+)for(j=0;jCOLS;j+)valueij=i+j;valueij=i+j;数组的输入数组的输入 for(i=0;iROWS;i+)for(i=0;iROWS;i+)for(j=0

5、;jCOLS;j+)for(j=0;jCOLS;j+)scanf(“%d scanf(“%d,&valueij);,&valueij);#define ROWS 4#define COLS 5int value ROWSCOLS;2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3二维数组操作二维数组操作4二维数组元素的引用及根本操作二维数组元素的引用及根本操作3.3.数组的输出数组的输出 for(i=0;iROWS;i+)for(i=0;iROWS;i+)for(j=0;jCOLS;j+)for(j=0;jCOLS;j+)printf(“%4d printf(“

6、%4d,valueij);valueij);putchar(n);putchar(n);#define ROWS 4#define COLS 5int value ROWSCOLS;2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3二维数组操作二维数组操作4例题:从键盘输入如下的矩阵例题:从键盘输入如下的矩阵1 2 4 5 1 2 4 5 3 4 5 73 4 5 75 7 9 85 7 9 8然后输出该矩阵然后输出该矩阵2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作lessson11_01.c#include int main

7、()int a34,i,j;for(i=0;i3;i+)for(j=0;j4;j+)scanf(%d,&aij);for(i=0;i3;i+)for(j=0;j4;j+)printf(%4d,aij);printf(n);return 0;2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3二维数组应用二维数组应用5例6:判断给定方阵是否为对称矩阵。1102188210413992521136143688991471232253612332022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3二维数组应用二维数组应用5 问题分析问题分析

8、对于一个给定的对于一个给定的N NN N矩阵矩阵arrayarray,如果矩阵中的,如果矩阵中的每个元素都满足每个元素都满足arrayij=arrayjiarrayij=arrayji,那,那么称这个矩阵为对称矩阵。么称这个矩阵为对称矩阵。在判断一个给定的矩阵是否为对称矩阵时,只需在判断一个给定的矩阵是否为对称矩阵时,只需要用下三角局部的每个元素与对应的上三角元素要用下三角局部的每个元素与对应的上三角元素进行比较。如果每一对元素都相等,这个矩阵就进行比较。如果每一对元素都相等,这个矩阵就是对称矩阵,否那么,就是非对称矩阵。是对称矩阵,否那么,就是非对称矩阵。2022-12-18电气与信息工程学

9、院计算机系制作电气与信息工程学院计算机系制作 算法描述 开开始始 结结束束 显显示示矩矩阵阵 输输入入矩矩阵阵 mij!=mji 输输出出非非对对称称信信息息 Y N 0i iNUM 0j ji j+1j Y N i+1i Y 输输出出对对称称信信息息 N 2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作#include#define NUM 5 矩阵行列数矩阵行列数int main()int mNUMNUM;/*定义二维数组变量定义二维数组变量*/int i,j;/*输入矩阵输入矩阵*/printf(Enter%d rows%d cols datas for

10、the maxtrix:n,NUM,NUM);for(i=0;iNUM;i+)for(j=0;jNUM;j+)scanf(%d,&mij);/*显示矩阵显示矩阵*/for(i=0;iNUM;i+)for(j=0;jNUM;j+)printf(%4d,mij);printf(n);lesson11_06_1.c2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作/*判断矩阵是否对称并输出相应的结果判断矩阵是否对称并输出相应的结果*/for(i=0;iNUM;i+)for(j=0;ji;j+)if(mij!=mji)printf(nThe matrix isnt sym

11、metrical.);return 0;printf(nThe matrix is symmetrical.);return 0;2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3二维数组应用二维数组应用5改进:改进:从文件读入数组从文件读入数组使用标志变量判断使用标志变量判断2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作#include#define NUM 5 矩阵行列数矩阵行列数int main()int mNUMNUM;/*定义二维数组变量定义二维数组变量*/int i,j;FILE*fp;/*输入矩阵输入矩阵*/fp=

12、fopen(m.txt,r);for(i=0;iNUM;i+)for(j=0;jNUM;j+)fscanf(fp,%d,&mij);/*显示矩阵显示矩阵*/for(i=0;iNUM;i+)for(j=0;jNUM;j+)printf(%4d,mij);printf(n);lesson11_06_2.c2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作/*判断矩阵是否对称并输出相应的结果判断矩阵是否对称并输出相应的结果*/for(i=0;iNUM;i+)for(j=0;ji;j+)if(mij!=mji)flag=0;break;if(flag=1)printf(n

13、对称对称);elseprintf(n不对称不对称);return 0;2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3二维数组应用二维数组应用5例7:输入输入3个同学、个同学、4门课程的成绩,并按门课程的成绩,并按照如下格式输出照如下格式输出(成绩保存在成绩保存在score.txt文件中文件中)90 80 70 9997 83 92 6591 85 88 762022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作#include#define STUS 3#define LSN 4 int main()int mSTUSLSN;/*定

14、义二维数组变量定义二维数组变量*/int i,j;FILE*fp;fp=fopen(score.txt,r);for(i=0;iSTUS;i+)for(j=0;jLSN;j+)fscanf(fp,%d,&mij);/*显示矩阵显示矩阵*/for(i=0;iSTUS;i+)for(j=0;jLSN;j+)printf(%4d,mij);printf(n);lesson11_07.c2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3二维数组应用二维数组应用5从键盘输入一个矩阵,将该矩阵转置从键盘输入一个矩阵,将该矩阵转置后输出后输出2022-12-18电气与信息工程

15、学院计算机系制作电气与信息工程学院计算机系制作分析:分析:n定义一个定义一个2行行4列的二维数组列的二维数组a,用于存放原始,用于存放原始的矩阵的矩阵n定义一个定义一个4行行2列的二维数组列的二维数组b,用于存放转置,用于存放转置后的矩阵后的矩阵n循环数组循环数组a的所有元素,将的所有元素,将a中的每一个元素中的每一个元素存放至存放至b的对应位置:行列位置正好相反的对应位置:行列位置正好相反n输出二维数组输出二维数组b2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3课堂练习课堂练习6输出如以下图形输出如以下图形1611162127121722381318234

16、91419245101520252022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3排序排序7例:假设用户通过键盘输入一个整型数列。例:假设用户通过键盘输入一个整型数列。请编写一个程序,将其按照从小到大的顺序请编写一个程序,将其按照从小到大的顺序重新排列。重新排列。即在从键盘输入如下的数据即在从键盘输入如下的数据2 6 8 1 9 5 42 6 8 1 9 5 4输出输出1 2 4 5 6 8 9 1 2 4 5 6 8 9 2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3排序排序7 问题分析问题分析l首先从首先从n n个数据中选

17、择一个最小的数据,并将它交换到个数据中选择一个最小的数据,并将它交换到第第1 1个位置;然后再从后面个位置;然后再从后面n-1n-1个数据中选择一个最小个数据中选择一个最小的数据,并将它交换到第的数据,并将它交换到第2 2个位置;以此类推,直至最个位置;以此类推,直至最后从两个数据中选择一个最小的数据,并将它交换到后从两个数据中选择一个最小的数据,并将它交换到第第n-1n-1个位置为止,整个排序操作结束。个位置为止,整个排序操作结束。2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作 算法描述 2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计

18、算机系制作#include#define NUM 10 /*参与排序的数据个数参与排序的数据个数*/int main()int dataNUM;/*存放参与排序的所有整数存放参与排序的所有整数*/int i,j,minIndex,temp;/*通过键盘输入待排序的整型数列通过键盘输入待排序的整型数列*/printf(nEnter%d integers.,NUM);for(i=0;iNUM;i+)scanf(%d,&datai);/*显示原始整型数列显示原始整型数列*/printf(n%d integers are:,NUM);for(i=0;iNUM;i+)printf(%5d,datai);

19、lesson10_01.c2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作 for(i=0;iNUM-1;i+)minIndex=i;for(j=i+1;jNUM;j+)if(datajdataminIndex)/*交换交换*temp=dataj;dataj=dataminIndex;dataminIndex=temp;/*输出排序后的结果输出排序后的结果*/printf(nOrdering list is:n);for(i=0;iNUM;i+)printf(%5d,datai);return 0;2022-12-18电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3课后练习课后练习8编程实现从键盘任意输入编程实现从键盘任意输入20个整数,统计个整数,统计非负数个数,并计算非负数之和。非负数个数,并计算非负数之和。输入输入55阶的矩阵,编程实现:阶的矩阵,编程实现:1求两条对角线上的各元素之和。求两条对角线上的各元素之和。2求两条对角线上行、列下标均为偶求两条对角线上行、列下标均为偶数的各元素之积。数的各元素之积。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!