lesson10数据的组织结构一二维数组与排序_第1页
lesson10数据的组织结构一二维数组与排序_第2页
lesson10数据的组织结构一二维数组与排序_第3页
lesson10数据的组织结构一二维数组与排序_第4页
lesson10数据的组织结构一二维数组与排序_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2024/1/25电气与信息工程学院计算机系制造Lesson10数据的组织构造2024/1/25电气与信息工程学院计算机系制造学习目的:31掌握二维数组的运用2024/1/25电气与信息工程学院计算机系制造3二维数组3数学概念矩阵:8070999783926591858876例:2024/1/25电气与信息工程学院计算机系制造3二维数组3日常生活例子表格:123456789101112131415162024/1/25电气与信息工程学院计算机系制造3二维数组3特点:按行、列分布,并且每个数据需求由两个位置确定:一个行位置,一个列位置C言语中实现方法:二维数组2024/1/25电气与信息工程学院计算机系制造3二维数组3在C言语中如何实现?类型数组名[行长度][列长度]intarray[3][4]例:floatd[3][5];inta[6][6];chars[4][10];一切元素都是int数组名3行4列留意:必需是常量array2024/1/25电气与信息工程学院计算机系制造3二维数组3二维数组的援用1234567891011127第1行第2列数组aa[1][2]数组名[行下标][列下标]2024/1/25电气与信息工程学院计算机系制造3二维数组3二维数组初始化:在定义二维数组时,给元素赋初值方式1:inta[2][3]={1,2,3,4,5,6};方式2:inta[2][3]={{1,2,3},{4,5,6}};方式3:inta[][3]={1,2,3,4,5,6};方式4:inta[2][]={1,2,3,4,5,6};×错误!2024/1/25电气与信息工程学院计算机系制造3二维数组操作4二维数组元素的援用及根本操作数组的赋值for(i=0;i<ROWS;i++)for(j=0;j<COLS;j++)value[i][j]=i+j;数组的输入for(i=0;i<ROWS;i++)for(j=0;j<COLS;j++)scanf(“%d〞,&value[i][j]);#defineROWS4#defineCOLS5intvalue[ROWS][COLS];2024/1/25电气与信息工程学院计算机系制造3二维数组操作4二维数组元素的援用及根本操作3.数组的输出for(i=0;i<ROWS;i++){for(j=0;j<COLS;j++)printf(“%4d〞,value[i][j]);putchar(‘\n’);}#defineROWS4#defineCOLS5intvalue[ROWS][COLS];2024/1/25电气与信息工程学院计算机系制造3二维数组操作4例题:从键盘输入如下的矩阵124534575798然后输出该矩阵2024/1/25电气与信息工程学院计算机系制造lessson11_01.c#include<stdio.h>intmain(){inta[3][4],i,j;for(i=0;i<3;i++){ for(j=0;j<4;j++){

}}scanf("%d",&a[i][j]);for(i=0;i<3;i++){ for(j=0;j<4;j++){

}}printf("%4d",a[i][j]);printf("\n");return0;}2024/1/25电气与信息工程学院计算机系制造3二维数组运用5例6:判别给定方阵能否为对称矩阵。1102188210413992521136143688991471232253612332024/1/25电气与信息工程学院计算机系制造3二维数组运用5问题分析对于一个给定的NN矩阵array,假设矩阵中的每个元素都满足array[i][j]=array[j][i],那么称这个矩阵为对称矩阵。在判别一个给定的矩阵能否为对称矩阵时,只需求用下三角部分的每个元素与对应的上三角元素进展比较。假设每一对元素都相等,这个矩阵就是对称矩阵,否那么,就是非对称矩阵。2024/1/25电气与信息工程学院计算机系制造算法描画2024/1/25电气与信息工程学院计算机系制造#include<stdio.h>#defineNUM5矩阵行列数intmain(){intm[NUM][NUM];/*定义二维数组变量*/inti,j;/*输入矩阵*/printf("\Enter%drows%dcolsdatasforthemaxtrix:\n",NUM,NUM);for(i=0;i<NUM;i++)for(j=0;j<NUM;j++) scanf("%d",&m[i][j]);/*显示矩阵*/for(i=0;i<NUM;i++){for(j=0;j<NUM;j++) printf("%4d",m[i][j]);printf("\n");}lesson11_06_1.c2024/1/25电气与信息工程学院计算机系制造/*判别矩阵能否对称并输出相应的结果*/for(i=0;i<NUM;i++)for(j=0;j<i;j++) if(m[i][j]!=m[j][i]){ printf("\nThematrixisn'tsymmetrical."); return0; }printf("\nThematrixissymmetrical.");return0;}2024/1/25电气与信息工程学院计算机系制造3二维数组运用5改良:从文件读入数组运用标志变量判别2024/1/25电气与信息工程学院计算机系制造#include<stdio.h>#defineNUM5矩阵行列数intmain(){intm[NUM][NUM];/*定义二维数组变量*/inti,j;FILE*fp;/*输入矩阵*/fp=fopen("m.txt","r");for(i=0;i<NUM;i++)for(j=0;j<NUM;j++) fscanf(fp,"%d",&m[i][j]);/*显示矩阵*/for(i=0;i<NUM;i++){for(j=0;j<NUM;j++) printf("%4d",m[i][j]);printf("\n");}lesson11_06_2.c2024/1/25电气与信息工程学院计算机系制造/*判别矩阵能否对称并输出相应的结果*/for(i=0;i<NUM;i++)for(j=0;j<i;j++) if(m[i][j]!=m[j][i]){ flag=0; break;}if(flag==1) printf("\n对称");else printf("\n不对称");return0;}2024/1/25电气与信息工程学院计算机系制造3二维数组运用5例7:输入3个同窗、4门课程的成果,并按照如下格式输出(成果保管在score.txt文件中)80709997839265918588762024/1/25电气与信息工程学院计算机系制造#include<stdio.h>#defineSTUS3#defineLSN4intmain(){intm[STUS][LSN];/*定义二维数组变量*/inti,j;FILE*fp;fp=fopen("score.txt","r");for(i=0;i<STUS;i++)for(j=0;j<LSN;j++) fscanf(fp,"%d",&m[i][j]);/*显示矩阵*/for(i=0;i<STUS;i++){for(j=0;j<LSN;j++) printf("%4d",m[i][j]);printf("\n");}lesson11_07.c2024/1/25电气与信息工程学院计算机系制造3二维数组运用5从键盘输入一个矩阵,将该矩阵转置后输出2024/1/25电气与信息工程学院计算机系制造分析:定义一个2行4列的二维数组a,用于存放原始的矩阵定义一个4行2列的二维数组b,用于存放转置后的矩阵循环数组a的一切元素,将a中的每一个元素存放至b的对应位置:行列位置正好相反输出二维数组b2024/1/25电气与信息工程学院计算机系制造3课堂练习6输出如以下图形161116212712172238131823491419245101520252024/1/25电气与信息工程学院计算机系制造3排序7例:假设用户经过键盘输入一个整型数列。请编写一个程序,将其按照从小到大的顺序重新陈列。

即在从键盘输入如下的数据

2681954

输出

12456892024/1/25电气与信息工程学院计算机系制造3排序7问题分析首先从n个数据中选择一个最小的数据,并将它交换到第1个位置;然后再从后面n-1个数据中选择一个最小的数据,并将它交换到第2个位置;以此类推,直至最后从两个数据中选择一个最小的数据,并将它交换到第n-1个位置为止,整个排序操作终了。2024/1/25电气与信息工程学院计算机系制造算法描画2024/1/25电气与信息工程学院计算机系制造#include<stdio.h>#defineNUM10 /*参与排序的数据个数*/intmain(){intdata[NUM]; /*存放参与排序的一切整数*/inti,j,minIndex,temp;/*经过键盘输入待排序的整型数列*/printf("\nEnter%dintegers.",NUM);for(i=0;i<NUM;i++){scanf("%d",&data[i]);}/*显示原始整型数列*/printf("\n%dintegersare:",NUM);for(i=0;i<NUM;i++){printf("%5d",data[i]);}lesson10_01.c2024/1/25电气与信息工程学院计算机系制造for(i=0;i<NUM-1;i++){minIndex=i;for(j=i+1;j<NUM;j++){ if(data[j]<data[minIndex]){/*交换* temp=data[j]; data[j]=data[minIndex]; data[minIndex]=temp;

温馨提示

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

评论

0/150

提交评论