《C语言》课程教学课件(PPT讲稿)23——C语言——数组——第8章——一维数组——移位删除

第8章数组
第 8 章 数 组

本章知识点8.1一维数组的定义、引用与初始化数组名+一维下标”--表示数据8.2一维数组的应用8.3二维数组“数组名+二维下标”--表示数据8.4数组与函数
本章知识点 8.1 一维数组的定义、引用与初始化 “数组名+一维下标”-表示数据 8.2 一维数组的应用 8.3 二维数组 “数组名+二维下标”-表示数据 8.4 数组与函数

8.2.5逆置与移位【例8.12】数组移位:将指定个数的数组尾部元素移到数组首部。--数组元素的规律移位。a[0]a[1]a[2]a[3] a[4]a[5]a[6] a[7] a[8]a[9]移位前2015|31/12375521183044的数组a[5]a[6]a[7] a[8]a[9]a[o]a[1] a[2]a[3]a[4]移位后15372118203112553044的数组
【例8.12】数组移位:将指定个数的数组尾部元素移到数组首部。 -数组元素的规律移位 。 37 55 21 18 30 44 20 15 31 12 15 31 12 37 55 21 18 30 44 20 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 移位前 的数组 移位后 的数组 8.2.5 逆置与移位

【例8.12】数组移位:将指定个数的数组尾部元素移到数组首部--数组元素的规律移位。先看最后一个元素的移动到最前面的情况:移动之前37211855304420153112a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]移动之后12213755183020153144a[0]a[1]a[2]a[4]a[8]a[9]a[3]a[5]a[6]a[7]
先看最后一个元素的移动到最前面的情况: 移动 之前 37 55 21 18 30 44 20 15 31 12 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 移动 之后 12 37 55 21 18 30 44 20 15 31 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 【例8.12】数组移位:将指定个数的数组尾部元素移到数组首部。 -数组元素的规律移位

【例8.12】数组移位:将指定个数的数组尾部元素移到数组首部分析:移动1个元素---最后1个元素a[n-1]移动到a[0]位置。实现步骤:①用中间变量t保存最后一个元素a[n-1]:t=a[n-1]②将其余数组元素依次后移a[n-2] → a[n-1]a[n-3] → a[n-2]a[1] → a[2]a[0]→a[1]赋值语句:a[1]=a[0];a[n-1]=a[n-2];a[n-2]=a[n-3];....改为循环语句:for(i=n-1;i>0;i--)a[i]=a[i-1];③将中间变量t保存的原来的a[n-1]的值放入第一位置:a[0]=t结论:将m个数组尾部元素移到数组首部--上述①~~③步执行m次
分析:移动 1 个元素-最后 1 个元素a[n–1]移动到a[0] 位置。 实现步骤: ① 用中间变量t 保存最后一个元素a[n-1]:t = a[n–1]; ② 将其余数组元素依次后移: a[n-2] → a[n-1] a[n-3] → a[n-2] . a[1] → a[2] a[0]→a[1] 赋值语句:a[n-1]=a[n-2]; a[n-2]=a[n-3]; . ; a[1]=a[0]; 改为循环语句:for ( i=n-1; i>0; i-) a[i]=a[i-1]; ③ 将中间变量t 保存的原来的a[n-1]的值放入第一位置:a[0]=t 结论:将m个数组尾部元素移到数组首部-上述①~~③步执行m 次。 【例8.12】数组移位:将指定个数的数组尾部元素移到数组首部

【例8.12】数组移位:将指定m个数的数组尾部元素移到数组首部关键代码:scanf("%d",&m);11/m次移位for(k=1;k0;i-)6Ⅱ数组元素依次后移a[]]=a[i-1];a[0] = t;I原来的a[n-1]存入a[0]186
6 关键代码: ① scanf("%d",&m); ② for ( k=1;k0;i- ) ⑥ a[i]=a[i-1]; // 数组元素依次后移 ⑦ a[0] = t; // 原来的a[n-1]存入a[0] ⑧ } 【例8.12】数组移位:将指定m个数的数组尾部元素移到数组首部

1186----数组逆序(最后元素移到最前面)数组逆序C语言实验1int k,i,n,m,t,a[100];②scanf("%d",&n);for(i=;i=1;i--)OutputOa[i]=a[i-1];//数组元素依次后移按先后顺序输出n个整数。?a[0]=t;1/ 将最后一个数移到第一个位置ExampleInput?12//输出前n-1个数for (i=0;<n-1;i++)5123452?printf("%d ",a[iD);14printf(%din"an-1D;/输出第n个数ExampleOutput45123
1186-数组逆序 (最后元素移到最前面) ① int k,i,n,m,t,a[100]; ② scanf("%d",&n); ③ for(i=0;i=1; i-) ⑨ a[i]=a[i-1]; // 数组元素依次后移 ⑩ a[0]=t; // 将最后一个数移到第一个位置 ⑪ } ⑫ for (i=0;i<n-1;i++) // 输出前 n-1 个数 ⑬ printf("%d ",a[i]); ⑭ printf("%d\n",a[n-1]); // 输出第 n 个数

移位应用一输出矩阵输入:n个整数,例如n=6,输入462798输出:n(例如n=6)行的矩阵如下:62798--初始数据分析:只有一行输入,如何得到n行输出数据?84627an行输出数据之间是有联系的!6824S第行:462798984621心第二行:846279627984右移1位什么规律?627984后面的各行呢?规律:每一行数据是由前一行数据右移1位后得到的。方法:先输出一行数据后,再移位得到下一行数据
移位应用—输出矩阵 输入:n个整数,例如n=6,输入4 6 2 7 9 8 输出:n(例如n=6)行的矩阵如下: 4 6 2 7 9 8 -初始数据 8 4 6 2 7 9 9 8 4 6 2 7 7 9 8 4 6 2 2 7 9 8 4 6 6 2 7 9 8 4 分析: ◆ 只有一行输入,如何得到n 行输出数据? ◆ n 行输出数据之间是有联系的! ◆ 第一行:4 6 2 7 9 8 ◆ 第二行:8 4 6 2 7 9 ◆ 什么规律? ◆ 后面的各行呢? 规律: ◆ 每一行数据是由前一行数据右移 1 位后得到的。 方法:先输出一行数据后,再移位得到下一行数据。 右移 1位

+移位应用一输出矩阵数组初始化+II处理n行for(k=1;k0;i--)输出本行数据,换行8a[]=a[i-1];O1原来的a[n-1]到a[0]a[0] = t;右移1位得到下一行的数据0k++
① for (k=1;k0;i-) //数据后移 ⑧ a[i]=a[i-1]; ⑨ a[0] = t; //原来的a[n-1]到a[0] ⑩ } 数组初始化 k=1 k<=n 输出本行数据,换行 右移1位得到下一行的数据 k++ 移位应用—输出矩阵

矩阵输出ACM一矩阵输出(1523)TimeLimit:1000MSMem0ryLimit:65536KB1int i,k,n,t,a[21];1②scanf("%d",&n);ProblemDescription③for (i=0;i0i--)//数据后移a[i]=a[i-]];562583a[0]=t;1/原来的a[n-1]到a[0]ExampleOutput362588623583628
ACM—矩阵输出(1523) ① int i,k,n,t,a[21]; ② scanf("%d",&n); ③ for (i=0;i0;i-) //数据后移 ⑫ a[i]=a[i-1]; ⑬ a[0]=t; //原来的a[n-1]到a[0] ⑭ }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言》课程教学课件(PPT讲稿)24——C语言——数组——第8章——二维数组.ppt
- 《C语言》课程教学课件(PPT讲稿)25——C语言——数组——第8章——数组与函数.ppt
- 《C语言》课程教学课件(PPT讲稿)26——C语言——指针——第9章——指针基本知识——讲授.ppt
- 《C语言》课程教学课件(PPT讲稿)27——C语言——指针——第9章——指向数组.ppt
- 《C语言》课程教学课件(PPT讲稿)28——C语言——数组——第10章——字符数组——基本操作.ppt
- 《C语言》课程教学课件(PPT讲稿)29——C语言——数组——第10章——指针与字符串.ppt
- 《C语言》课程教学课件(PPT讲稿)30——C语言——数组——第10章——字符串数组与字符串函数.ppt
- 《C语言》课程教学课件(PPT讲稿)01——第11章——结构体(修改).ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第1章 绪论.ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)数据库系统原理绪论(补充资料).ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第2章 关系数据库.ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第3章 关系数据库标准语言SQL(1/3).ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第3章 关系数据库标准语言SQL(2/3).ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第3章 关系数据库标准语言SQL(3/3).ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第4章 数据库安全性.ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第5章 数据库完整性.ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第6章 关系数据理论.ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第7章 数据库设计(1/2).ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第7章 数据库设计(2/2).ppt
- 中国人民大学:《数据库系统原理》课程教学资源(PPT课件)第8章 数据库编程.ppt
- 《C语言》课程教学课件(PPT讲稿)22——C语言——数组——第8章——一维数组——查找逆置.ppt
- 《C语言》课程教学课件(PPT讲稿)21——C语言——数组——第8章——一维数组——排序应用.ppt
- 《C语言》课程教学课件(PPT讲稿)20——C语言——数组——第8章——一维数组——基本操作.ppt
- 《C语言》课程教学课件(PPT讲稿)19——C语言——函数——第7章——随机数函数.ppt
- 《C语言》课程教学课件(PPT讲稿)18——C语言——函数——第7章——变量作用域.ppt
- 《C语言》课程教学课件(PPT讲稿)17——C语言——函数——第7章——函数嵌套递归.ppt
- 《C语言》课程教学课件(PPT讲稿)16——C语言——函数——第7章——函数基本操作.ppt
- 《C语言》课程教学课件(PPT讲稿)15——C语言——循环嵌套——第6章——5.ppt
- 《C语言》课程教学课件(PPT讲稿)14——C语言——循环结构——第6章——6——break-continue.ppt
- 《C语言》课程教学课件(PPT讲稿)13——C语言——循环结构——for-第6章——4.ppt
- 《C语言》课程教学课件(PPT讲稿)12——C语言——循环结构——逗号表达式-第6章——3.ppt
- 《C语言》课程教学课件(PPT讲稿)11——C语言——循环结构——do-while-第6章——2.ppt
- 《C语言》课程教学课件(PPT讲稿)10——C语言——循环结构——while——第6章——1.ppt
- 《C语言》课程教学课件(PPT讲稿)09——C语言——选择结构——switch——第5章——2.ppt
- 《C语言》课程教学课件(PPT讲稿)08—C语言—选择结构——if.ppt
- 《C语言》课程教学课件(PPT讲稿)07 第四章 顺序结构(2)—输入输出.ppt
- 《C语言》课程教学课件(PPT讲稿)06 第四章 顺序结构(1).ppt
- 《C语言》课程教学课件(PPT讲稿)05 第三章 数据类型(3).ppt
- 《C语言》课程教学课件(PPT讲稿)04 第三章 数据类型(2).ppt
- 《C语言》课程教学课件(PPT讲稿)03 第三章 数据类型(1)—数据的存储方式.ppt
