C# 学习笔记(十)数组练习
文章目录
- 1. 一维数组
- 2. 二维数组
- 2.1 二维数的组赋值和遍历
- 2.2 输出矩阵
- 3. 交错数组
- 3.1 创建一个交错数组
- 3.2 创建一个交错数组并赋值
- 3.2 交错数组遍历
- 3.3 交错数组矩阵输出
- 3.4 使用交错数组(数组嵌套)输出一首诗
- 4. 二维数组和交错数组的对比
1. 一维数组
/** 一维数组 */// 初始化一个含有5个int型元素的数组int[] a = new int[5];// 初始化数组中的元素for (int i = 0; i < a.Length; i++){a[i] = i + 10;}// foreach遍历int index = 0;foreach (int e in a){Console.WriteLine("index:{0},element:{1}", index, e);index++;}Console.WriteLine("\n");// for循环遍历for (int i = 0; i < a.Length; i++){Console.WriteLine("index:{0},element:{1}", i, a[i]);}
2. 二维数组
2.1 二维数的组赋值和遍历
/** 二维数组练习一 */// 初始化
int[,] n = new int[3, 4];// 赋值
for (int i = 0; i < n.GetLength(0); i++)
{for (int j = 0; j < n.GetLength(1); j++){n[i, j] = i + j;}
}// 遍历
for (int i = 0; i < n.GetLength(0); i++)
{for (int j = 0; j < n.GetLength(1); j++){Console.WriteLine("({0},{1}):{2}", i, j, n[i, j]);}
}
打印如下:
(0,0):0
(0,1):1
(0,2):2
(0,3):3
(1,0):1
(1,1):2
(1,2):3
(1,3):4
(2,0):2
(2,1):3
(2,2):4
(2,3):5
2.2 输出矩阵
// 初始化
int[,] n = new int[3, 4];// 赋值
for (int i = 0; i < n.GetLength(0); i++)
{for (int j = 0; j < n.GetLength(1); j++){n[i, j] = i + j;}
}// 遍历
for (int i = 0; i < n.GetLength(0); i++)
{for (int j = 0; j < n.GetLength(1); j++){Console.Write(n[i, j] + "\t"); // 横向输出if (j == 3) { Console.Write("\n"); // 换行}}
}
打印如下:
0 1 2 3
1 2 3 4
2 3 4 5 Press any key to continue...
3. 交错数组
3.1 创建一个交错数组
int[][] scores = new int[5][];
for (int i = 0; i < scores.Length; i++)
{scores[i] = new int[4];
}
实际上是数组嵌套,数组嵌套数组,即数组的每个元素又是一个数组,所以初始化完数组后,初始化每个数组元素。
3.2 创建一个交错数组并赋值
int[][] scores = new int[2][]{new int[]{92,93,94},new int[]{85,66,87,88}};
scores这个数组里面嵌套了三个数组。
3.2 交错数组遍历
// 初始化交错数组int[][] scores = new int[2][]{new int[]{92,93,94},new int[]{85,66,87,88}};// 遍历foreach (int[] arr in scores) {foreach (int i in arr ) {Console.Write("{0},",i);}}
打印如下:
92,93,94,85,66,87,88,
3.3 交错数组矩阵输出
- 使用foreach
// 初始化交错数组
int[][] scores = new int[2][]
{new int[]{92,93,94},new int[]{85,66,87,88}
};
//
foreach (int[] arr in scores)
{int index = 0;foreach (int i in arr){Console.Write("{0} ", i);if (index == arr.Length - 1){Console.Write("\n");}index++;}
}
打印如下:
92 93 94
85 66 87 88 Press any key to continue...
- 使用for循环
for (int i = 0; i < scores.GetLength(0); i++)
{for (int j = 0; j < scores[i].Length; j++){Console.Write("{0} ", scores[i][j]);if (j == scores[i].Length - 1){Console.Write("\n");}}
}
3.4 使用交错数组(数组嵌套)输出一首诗
char[][] arr = new char[4][];
arr[0] = new char[] { '春', '眠', '不', '觉', '晓' };
arr[1] = new char[] { '处', '处', '闻', '啼', '鸟' };
arr[2] = new char[] { '夜', '来', '风', '语', '声' };
arr[3] = new char[] { '花', '落', '知', '多', '少' };for (int i = 0; i < arr.GetLength(0); i++)
{for (int j = 0; j < arr[i].Length; j++){Console.Write(arr[i][j] + "\t"); // 横向输出if (j == arr[i].Length-1){Console.Write("\n"); // 横向输出}}
}
打印如下:
春 眠 不 觉 晓
处 处 闻 啼 鸟
夜 来 风 语 声
花 落 知 多 少 Press any key to continue...
4. 二维数组和交错数组的对比
很容易会搞混,所以对比看一下
- 初始化
// 二维数组
int[,] a = new int[5, 2]
{ { 0, 0 },{ 1, 2 },{ 2, 4 },{ 3, 6 },{ 4, 8 }
};// 交错数组
int[][] b = new int[][]
{new int[]{ 0,0},new int[]{ 1,2},new int[]{ 2,4},new int[]{ 3,6},new int[]{ 4,8},
};
- 取值
// 二维数组取值//a[0,0]; // 报错
//a[0][0]; // 报错
int eleme = a[0, 0];// 交错数组取值//b[0]; // 报错
int[] tempArr = b[0]; // ✔️
//b[0][0]; // 报错
int temp = b[0][0]; // ✔️
C# 学习笔记(十)数组练习相关推荐
- Python语言入门这一篇就够了-学习笔记(十二万字)
Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...
- Polyworks脚本开发学习笔记(十)-互动式开发及出错控制
Polyworks脚本开发学习笔记(十)-互动式开发及出错控制 第八章组合的各种命令,完成了一个对所选的测点名称进行命名的任务.但是,由于任务中没有交互环节,只能机械地将 曲面点 - 包边点改为Flu ...
- Polyworks脚本开发学习笔记(十二)-输出和读取文本文件
Polyworks脚本开发学习笔记(十二)-输出和读取文本文件 Polyworks作为一个测量工具,将测量的数据方便的导出到文本文件则是一项必须的功能.在DATA_FILE这个命令下提供了很多子命令用 ...
- OpenCV学习笔记(十二)——图像分割与提取
在图像处理的过程中,经常需要从图像中将前景对象作为目标图像分割或者提取出来.例如,在视频监控中,观测到的是固定背景下的视频内容,而我们对背景本身并无兴趣,感兴趣的是背景中出现的车辆.行人或者其他对象. ...
- JavaScript学习笔记之数组(二)
JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...
- IOS之学习笔记十五(协议和委托的使用)
1.协议和委托的使用 1).协议可以看下我的这篇博客 IOS之学习笔记十四(协议的定义和实现) https://blog.csdn.net/u011068702/article/details/809 ...
- 吴恩达《机器学习》学习笔记十四——应用机器学习的建议实现一个机器学习模型的改进
吴恩达<机器学习>学习笔记十四--应用机器学习的建议实现一个机器学习模型的改进 一.任务介绍 二.代码实现 1.准备数据 2.代价函数 3.梯度计算 4.带有正则化的代价函数和梯度计算 5 ...
- 吴恩达《机器学习》学习笔记十二——机器学习系统
吴恩达<机器学习>学习笔记十二--机器学习系统 一.设计机器学习系统的思想 1.快速实现+绘制学习曲线--寻找重点优化的方向 2.误差分析 3.数值估计 二.偏斜类问题(类别不均衡) 三. ...
- 吴恩达《机器学习》学习笔记十——神经网络相关(2)
吴恩达<机器学习>学习笔记十--神经网络相关(2) 一. 代价函数 二. 反向传播算法 三. 理解反向传播算法 四. 梯度检测 五. 随机初始化 1.全部初始化为0的问题 2.随机初始化的 ...
- Mr.J-- jQuery学习笔记(十九)--自定义动画实现图标特效
之前有写过自定义动画Mr.J-- jQuery学习笔记(十八)--自定义动画 这次实现一个小demo 图标特效 页面渲染 <!DOCTYPE html> <html lang=&qu ...
最新文章
- [开发]Resin 4.0.15重启时常见问题
- python常用内置函数汇总_太全了!Python3常用内置函数总结
- 什么样的征信才算是好的?
- Java 和 Android系统环境变量设置
- 复杂的权限按钮控制优化
- Dr.COM 宽带认证客户端频繁掉线问题解决方案
- QQ概念版(WPF制作)
- 深圳医保社保的使用方法
- 小米,红米 root Magisk(面具)安装教程
- Bootstrap Table Fixed Columns
- java dns缓存清理_清除DNS缓存信息方法
- 小程序错误:Setting data field collected to undefined is invalid.
- 【学习记录】图片行列切割与子图行列拼接之中央裁剪法
- wifi密码公式计算机,用定积分知识破译wifi密码,数学知识什么时候能派上用场?...
- 手游各个平台开接入发者中心网址汇总
- SATA硬盘和IDE硬盘区别及优劣比较
- Substance的置换效果
- excel 根据起始日期计算到期日
- 成立智能计算事业部,华为在下什么大棋?
- 6-3 结构体的最值 (5分)##C语言