C#程序设计 第4章数组与集合
C# 程序设计 第4章 数组与集合
本章目标 ■了解数组的基本概念 ■掌握一维数组和二维数组的使用 ■掌握Array类的使用 ■掌握数组的各种操作
2 本章目标 ▪ 了解数组的基本概念 ▪ 掌握一维数组和二维数组的使用 ▪ 掌握Array类的使用 ▪ 掌握数组的各种操作
本章主要内容 大一维数组的声明、实例化、初始化和访问 大二数组的声明、实例化、初始化和访问 ☆多维数组的声明、实例化、初始化和访问 大数组的基本操作和排序 ☆System.Array类的使用 3
3 本章主要内容 一维数组的声明、实例化、初始化和访问 二数组的声明、实例化、初始化和访问 多维数组的声明、实例化、初始化和访问 数组的基本操作和排序 System.Array类的使用
本章主要内容 ☆ 一维数组 ☆ 多维数组 ☆交错数组 ★数组的基本操作和排序 大作为对象的数组 4
4 本章主要内容 一维数组 多维数组 交错数组 数组的基本操作和排序 作为对象的数组
本章主要内容 ”一维数组 大多维数组 ☆ 交错数组 ☆ 数组的基本操作和排序 责作为对象的数组 5
5 本章主要内容 一维数组 多维数组 交错数组 数组的基本操作和排序 作为对象的数组
数组 int类型】 67 4 ■为什么要使用数组? 64 3 ■很多不同类型的数据, 元素 79 2 下标 需要进行分类存放,便于查找。 89 10 95 ■什么是数组?类型? score[0] 数组名称 score[5] ■数组也是一个变量, 即“标识符 ■存储的是相同数据类型的一组数据。 ■引用类型 ■数组元素可以是任何类型 ■数组在内存中的存储情况? 6
6 数组 ▪ 为什么要使用数组? ◼ 很多不同类型的数据, 需要进行分类存放,便于查找。 ▪ 什么是数组?类型? ◼ 数组也是一个变量, ◼ 存储的是相同数据类型的一组数据。 ◼ 引用类型 ◼ 数组元素可以是任何类型 ▪ 数组在内存中的存储情况?
数组 ■只包含单个序列的数组称为一维数组 ■多维数组通过一个或多个值进行索引 ■C#支持三种数组:一维数组、多维数组和交错数组 ■数组有一个“秩(rank)”,称为数组的维度 [0] [1] [2] [3] [N-1们 秩为1:一维数组 [0,0] [0,1 [0,2] [0,3] [0,N-1] [1,0] [1,1) [1,2] [1,3] LOono0 [1,N-1] 秩为大于1 [2,0] [2,1] [2,2] [2,3] 11111■ [2,N-1] 多维数组 [3,0] [3,1 [3,2] [3,3 [3,N-1] 1 [M-1,0] [M1,1] [M1,2 [M-1,3] [M1,N-1]
7 数组 ◼只包含单个序列的数组称为一维数组 ◼多维数组通过一个或多个值进行索引 [0] [1] [2] [3] . [N-1] [0,0] [0,1] [0,2] [0,3] . [0,N-1] [1,0] [1,1] [1,2] [1,3] . [1,N-1] [2,0] [2,1] [2,2] [2,3] . [2,N-1] [3,0] [3,1] [3,2] [3,3] . [3,N-1] . . . . . . [M-1,0] [M-1,1] [M-1,2] [M-1,3] . [M-1,N-1] ◼C#支持三种数组:一维数组、多维数组和交错数组 ◼数组有一个“秩(rank)”,称为数组的维度 秩为1:一维数组 秩为大于1 多维数组
一维数组 使用数组的步骤: 1.声明数组int[]score; 常量或变量 2.分配空间 score=new int; 动态初始化 3.元素赋值score[0]=95,.,score[4]=67; 4.引用数组元素 系统会给每个数组元素一个 必须是常量:和元素个数相等。 默认的值。布尔-false score=new int 95,89,79,64,67: 数值一0 string一null int[]score:={95,89,79,64,67; int[]score=new int[5]; String[str={"How","are","you"); score=new int90,89); 8
8 动态初始化 一维数组 使用数组的步骤: 1. 声明数组 int[ ] score; 2. 分配空间 score = new int[5]; 3. 元素赋值 score[0] = 95, . ,score[4] = 67; 4. 引用数组元素 score=new int[5]{95,89,79,64,67}; 系统会给每个数组元素一个 默认的值。布尔-false 数值—0 string—null 常量或变量 int[ ] score={95,89,79,64,67}; String[ ] str={"How", “are", "you"}; 必须是常量:和元素个数相等。 int[ ] score=new int[5]; score=new int[]{90,89};
访问数组元素 引用数组元素: ■ score[3]下标可以是整型常量; ■int size=5;score[size]]下标也可以是变量或表达式; ·for或foreach循环访问数组元素一多维数组中返回元秦个数 ·每个数组都有一个属性length指明它的长度。 int size=100; int[]score=new int[size]; for(int i=0;i<score.length;i++){ ∥使用score.length不会引起数组下标越界。 例:4-1统计学生成绩
9 访问数组元素 ▪ 引用数组元素: ◼ score[3] 下标可以是整型常量; ◼ int size=5;score[size] 下标也可以是变量或表达式; ◼ for或foreach循环访问数组元素 ◼ 每个数组都有一个属性 length 指明它的长度。 int size = 100; int[ ] score= new int[size]; for(int i=0; i<score.length; i++){ . } // 使用 score.length 不会引起数组下标越界。 多维数组中返回元素个数 例:4-1 统计学生成绩
一维数组 例4.1输入正整数n,随机产生n个学生的成绩,计算学生的 平均成绩,计算高于平均成绩的学生人数 int[]score; Random rnd new Random(); int n,sum =0,overAvg rnd.next(a,b);//a<=<b double avgScore; Console.Write("请輸输入学生人数n:"); n int.Parse(Console.ReadLine()); score new int[n]; 10
10 一维数组 int[ ] score; Random rnd = new Random( ); int n,sum = 0,overAvg = 0; double avgScore; Console.Write("请输入学生人数n:"); n = int.Parse(Console.ReadLine( )); score = new int[n]; ▪ 例4.1 输入正整数n,随机产生n个学生的成绩,计算学生的 平均成绩,计算高于平均成绩的学生人数 rnd.next(a,b);//a<=数<b