C++程序设计:第8章 数组_第1页
C++程序设计:第8章 数组_第2页
C++程序设计:第8章 数组_第3页
C++程序设计:第8章 数组_第4页
C++程序设计:第8章 数组_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、1请将您的手机铃声请将您的手机铃声设置为震动设置为震动2作业作业&实验教程:实验教程: 1.阅读程序阅读程序 (第第49页页) 2.程序改错程序改错 (第第49页页) 4.编写程序编写程序 (第第51页页)3v一维数组一维数组v二维数组二维数组v字符数组字符数组数数 组组一维数组一维数组二维数组二维数组4定义:定义:数据类型数据类型 数组名数组名常量表达式常量表达式; 合法标合法标识符识符数据元数据元素个数素个数下标运算符下标运算符(p276)例子:例子:int a4; char x2;一维数组一维数组int a4;xxxxxxxxa0a1a2a31000Ha1000H5#includ

2、e stdio.hvoid main( ) int i; for(i=0;i3;i+) scanf(%d,&ai); printf(%dn,ai); error C2065: a : undeclared identifierv一维数组的引用一维数组的引用数组必须先定义,后使用数组必须先定义,后使用6#include stdio.hvoid main() int i, a3, a=0; for(i=0;i3;i+) scanf(%d,&ai); a=a+ai; printf(%d,a);error C2040: a : int differs in levels of v一维数

3、组的引用一维数组的引用数组必须先定义,后使用数组必须先定义,后使用数组名不能与程序中的其它变量同名数组名不能与程序中的其它变量同名 7代表数据长度的常量表达式不能使用变量代表数据长度的常量表达式不能使用变量 数据元素的下标起始值为数据元素的下标起始值为0例例 printf(%d,a); ( )例例 int data5; data5=10; ( ) 数组必须先定义,后使用数组必须先定义,后使用修改修改 for(j=0;j10;j+) printf(%d ,aj);( )v一维数组的引用一维数组的引用数组名不能与程序中的其它变量同名数组名不能与程序中的其它变量同名 只能逐个引用数组元素只能逐个引用

4、数组元素,不能整体使用不能整体使用例例 int i=15; ( ) int datai; 8数据元素的下标起始值为数据元素的下标起始值为0 0数组必须先定义,后使用数组必须先定义,后使用代表数据长度的常量表达式不能使用变量代表数据长度的常量表达式不能使用变量 v一维数组的引用一维数组的引用数组名不能与程序中的其它变量同名数组名不能与程序中的其它变量同名 只能逐个引用数组元素只能逐个引用数组元素, ,不能整体使用不能整体使用对数组名不允许进行对数组名不允许进行+或或-运算运算例例 int d5; d+; ( )数组可以在定义时直接赋初值数组可以在定义时直接赋初值例例 int a2=5,7; 例例

5、 int a5=5,7; 9例例: :求求10个个整数的最大值和最小值整数的最大值和最小值#include stdio.hvoid main() int x10,i,max,min; for(i=0;i10;i+) scanf(%d,&xi);printf(Maximum is %dn,max); printf(Minimum is %dn,min);max=min=x0;for(i=1;i10;i+) if(maxxi) min=xi;10例例:用变量求用变量求Fibonacci数列前数列前20个数个数#include stdio.hvoid main( ) int i, f1=1,

6、 f2=1; for(i=1;i=10;i+) printf(%d,%d,f1,f2); f1=f1+f2; f2=f1+f2; 1, 1, 2, 3, 5, 8, 13, 21, 34, 5611例例: 求求Fibonacci数列前数列前20个数个数f0f1f2f3f4f5f1911f0=1;f1=1;fi=fi-1+fi-2; (i2).2358676512#include stdio.hvoid main( ) int i; int f20=1,1; for(i=2;i20;i+) fi=fi-2+fi-1; for(i=0;i20;i+) if(i%5=0) printf(n); pr

7、intf(%12d,fi); 例例:用数组求用数组求Fibonacci数列前数列前20个数个数1338 49 65 76 1338 49 65 1338 49 1349 38 65 97 76 133849769713971376136597766513494938 1313383813例例:用用冒泡法冒泡法对对6个数排序个数排序14#include stdio.hvoid main( ) int a6,i,j,t; for(i=0;i6;i+) scanf(%d,&ai); for(i=0;i6;i+) printf(%d ,ai);例例:用用冒泡法冒泡法对对6个数排序个数排序for

8、(i=0;i5;i+) for(j=0;jaj+1) t=aj; aj=aj+1; aj+1=t; 1549 38 65 13 76 27例例: :用用选择法选择法对对6个数排序个数排序493838131349 65 38 76 27493838272765 49 76 38496538493865 76 49 496549 76 65 6576657616#include stdio.hvoid main( ) int a6, i, j, t; for(i=0; i6; i+) scanf(%d, &ai); for(i=0;i6;i+) printf(%d ,ai);例例: :用用

9、选择法选择法对对6个数排序个数排序for(i=0;i5;i+) for(j=i+1;jaj) t=ai; ai=aj; aj=t; 17第一轮第一轮: : 49 38 65 13 76 27 j i例例: :用用简单选择法简单选择法对对a6数组数组升排序升排序k18例例: :用用简单选择法简单选择法对对a6数组数组升排序升排序第一轮第一轮: : 49 38 65 13 76 27j j ik kkj jj jkj j jai与与ak交换交换49131319第一轮第一轮: : 49 38 65 13 76 27j j i k kkj jai与与ak交换交换491313第二轮第二轮: : 38 6

10、5 49 76 27j j j273827例例: :用用简单选择法简单选择法对对a6数组数组升排序升排序20例例: :用用简单选择法简单选择法对对a6数组数组升排序升排序第一轮第一轮: : 49 38 65 13 76 27ai与与ak交换交换491313第二轮第二轮: : 38 65 49 76 382727j j第三轮第三轮: : 65 49 76 38j jj3865k k i38k kk21#include stdio.hvoid main() int a6,i,j,k,x; for(i=0;i6;i+) scanf(%d,&ai); for(i=0;i6;i+) printf

11、(%d ,ai);例例: :用用简单选择法简单选择法对对6个数排序个数排序for(i=0;i5;i+) k=i; for(j=i+1;j6;j+) if(ajak) k=j; if(i!=k) x=ai; ai=ak; ak=x;22二维数组二维数组v二维数组的定义二维数组的定义v二维数组的初始化二维数组的初始化v二维数组的简单示例二维数组的简单示例23定义:定义:数据类型数据类型 数组名数组名常量表达式常量表达式常量表达式常量表达式;行数行数列数列数例例 int a34; float b25; int a3,4; ( )存放顺序存放顺序:按列先变化存放在一维内存中按列先变化存放在一维内存中a

12、01a10a11a20a21a00int a32a00 a01a10 a11a20 a21v二维数组二维数组24v二维数组示例二维数组示例a01a02a03a10a11a00a13a20a21a22a23a12a0a1a2a0a1a2行行名名a00 a01 a02 a03a10 a11 a12 a13a20 a21 a22 a23每个元素每个元素ai由包含由包含4个个元素的一维数组组成元素的一维数组组成int a34;二维数组二维数组a是由是由3个元素组成个元素组成25分行初始化分行初始化 例例 int a23=1,2,3,4,5,6;a00a01a02a10a11a12123456全部初始化

13、全部初始化 例例 int a23=1,2,4;a00a01a02a10a11a12120400部分初始化部分初始化 例例 int a3=1,2,3,4,5,6;a00a01a02a10a11a12123456第一维长度省略初始化第一维长度省略初始化v二维数组元素的初始化二维数组元素的初始化26分行初始化分行初始化按元素排列顺序初始化按元素排列顺序初始化 例例 int a23=1,2,3,4,5,6;a00a01a02a10a11a12123456全部初始化全部初始化 例例 int a23=1,2,4;a00a01a02a10a11a12124000部分初始化部分初始化v二维数组元素的初始化二维

14、数组元素的初始化 例例 int a 3=1,2,3,4,5;a00a01a02a10a11a12123450第一维长度省略初始化第一维长度省略初始化27例例: :求二维数组中最大元素及其行列号求二维数组中最大元素及其行列号#include stdio.hvoid main() int a34=1,2,3,4,9,8,7,6,-10,10,-5,2; int i,j,r=0,c=0,max; max=a00; printf(max:%d,r:%d,c:%d,max,r+1,c+1);for(i=0;i3;i+) for(j=0;jmax) max=aij; r=i; c=j; 28例例: :互换

15、行列元素到并保存到另一数组互换行列元素到并保存到另一数组a=1 2 34 5 6b=1 42 53 6bji=aij29#include stdio.hvoid main() int a23=1,2,3,4,5,6, b32,i,j; for(i=0;i3;i+) for(j=0;j2;j+) printf(%5d,bij); printf(n); 例例: :互换行列元素到并保存到另一数组互换行列元素到并保存到另一数组for(i=0;i2;i+) for(j=0;j3;j+) bji=aij;302003年试题四年试题四/(3)2123.4916(1)nsn分析:寻找各项之间的规律分析:寻找各项之间的规律sign=-1*sig

温馨提示

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

评论

0/150

提交评论