C#数组--(一维数组,二维数组的声明,使用及遍历)
数组:是具有相同数据类型的一组数据的集合。数组的每一个的变量称为数组的元素,数组能够容纳元素的数称为数组的长度。
一维数组:以线性方式存储固定数目的数组元素,它只需要1个索引值即可标识任意1个数组元素
1.格式:数组类型 [ ] 数组名称;
[ ] 指定数组的秩(维度),秩指定数组的大小。
2.数据类型可以为任意数据类型
3.数据访问之前必须初始化
4.初始化方式有两种:
(1)new关键词;(2)字面值逗号相隔指定。
For example
//创建并初始化一维数组
int[] day = new int[] { , , , , , , , , , , , };
int[] score = new int[] { , , , };
遍历元素:数组中遍历元素,即对数组中所有元素都按次序访问且仅一次
1.for循环,foreach循环
2.数组索引从0开始,所以访问数组的最后一个人元素应该为n-1
3.遍历数组时避免越界
4.一维数组遍历时应该尽量使用foreach语句,因为foreach会自动检查数组的索引,使其不会出现越界值。
For example
//创建并初始化一维数组
int[] day = new int[] { , , , , , , , , , , , };
for (int i = ; i < ; i++) //利用循环将信息输出
{
Console.WriteLine((i + ) + "月有" + day[i] + "天"); //输出的信息
}
Console.ReadLine();
int[] score = new int[] { , , , };
Console.WriteLine("小明的各科成绩如下:");
for (int i = ; i < ; i++)//利用循环将信息输出
{
Console.Write(" " + score[i] + " ");//输出的信息
}
Console.ReadLine();
Console.WriteLine("狼人杀游戏主要身份:");//提示信息
//定义数组,存储狼人杀游戏主要角色
string[] roles = { "狼人", "预言家", "村民", "女巫", "丘比特", "猎人", "守卫" };
foreach(string role in roles)//遍历数组
{
Console.Write(role + " ");//输出遍历到的元素
}
Console.ReadLine();
二维数组:多维数组最简单的形式,一个二维数组可以被看做是一个带有x行和y行列的表格。
1.格式:数据类型[ , ] <数组名称>
2.初始化同样有两种:
(1)new关键字(2)字面值初始化
For example
char[][] arr = new char[][];// 创建一个4行的二维数组
arr[] = new char[] { '春', '眠', '不', '觉', '晓' };// 为每一行赋值
arr[] = new char[] { '处', '处', '闻', '啼', '鸟' };
arr[] = new char[] { '夜', '来', '风', '语', '声' };
arr[] = new char[] { '花', '落', '知', '多', '少' };
/* 横版输出 */
Console.WriteLine("-----横版-----");
for (int i = ; i < ; i++)
{ // 循环4行
for (int j = ; j < ; j++)
{ // 循环5列
Console.Write(arr[i][j]); // 输出数组中的元素
}
if (i % == )
{
Console.WriteLine(","); // 如果是一、三句,输出逗号
}
else
{
Console.WriteLine("。"); // 如果是二、四句,输出句号
}
}
/* 竖版输出 */
Console.WriteLine("\n-----竖版-----");
for (int j = ; j < ; j++)
{ // 列变行
for (int i = ; i >= ; i--)
{ // 行变列,反序输出
Console.Write(arr[i][j]); // 输出数组中的元素
}
Console.WriteLine(); //换行
}
Console.WriteLine("。,。,"); //输出最后的标点
Console.ReadLine();
Console.Title = "简单客车售票系统"; //设置控制台标题
string[,] zuo = new string[, ]; //定义二维数组
for (int i = ; i < ; i++) //for循环开始
{
for (int j = ; j < ; j++) //for循环开始
{
zuo[i, j] = "【有票】"; //初始化二维数组
}
}
string s = string.Empty; //定义字符串变量
while (true) //开始售票
{
Console.Clear(); //清空控制台信息
Console.WriteLine("\n 简单客车售票系统" + "\n"); //输出字符串
for (int i = ; i < ; i++)
{
for (int j = ; j < ; j++)
{
System.Console.Write(zuo[i, j]); //输出售票信息
}
Console.WriteLine(); //输出换行符
}
Console.Write("请输入坐位行号和列号(如:0,2)输入q键退出:");
s = Console.ReadLine(); //售票信息输入
if (s == "q") break; //输入字符串"q"退出系统
string[] ss = s.Split(','); //拆分字符串
int one = int.Parse(ss[]); //得到坐位行数
int two = int.Parse(ss[]); //得到坐位列数
zuo[one, two] = "【已售】"; //标记售出票状态
}
C#数组--(一维数组,二维数组的声明,使用及遍历)的更多相关文章
- PHP如何判断一个数组是一维数组或者是二维数组?用什么函数?
如题:如何判断一个数组是一维数组或者是二维数组?用什么函数? 判断数量即可 <?php if (count($array) == count($array, 1)) { echo '是一维数组' ...
- php获取一维,二维数组长度的方法(有实例)
在php中获取数组长度方法很简单,php为我们提供了两个函数可以计算一维数组长度,如count,sizeof都可以直接统计数组长度哦,下面我们来看几个实例吧.php如何获取数组的长度,使用php函数c ...
- egret之一维,二维数组
一维数组转换成二维数组下标公式: 行=下标/二维数组列数 列=下标%二维数组列数+1 ] + ); ] + ); 二维数组转一维数组: 下标=(二维数当前行-1)*列数+二维数当前列-1: let i ...
- Java一维与二维数组的拷贝与排序
Java一维与二维数组的拷贝与排序 目录 Java一维与二维数组的拷贝与排序 Arrays.sort() 一维数组升序排序 二维数组按行升序排序 二维数组按列升序排序 Java中的数组 Java中数组 ...
- C语言数组:C语言数组定义、二维数组、动态数组、字符串数组
1.C语言数组的概念 在<更加优美的C语言输出>一节中我们举了一个例子,是输出一个 4×4 的整数矩阵,代码如下: #include <stdio.h> #include &l ...
- 06-01 Java 二维数组格式、二维数组内存图解、二维数组操作
二维数组格式1 /* 二维数组:就是元素为一维数组的一个数组. 格式1: 数据类型[][] 数组名 = new 数据类型[m][n]; m:表示这个二维数组有多少个一维数组. n:表示每一个一维数组的 ...
- C语言 一维数组叠加为二维数组样例
这里参看memcpy的用法,将一个一维整型数组不停的叠加为二维数组 使用宏定义来控制二维数组的行列 代码如下: #include <stdio.h> #include <stdlib ...
- js将一个具有相同键值对的一维数组转换成二维数组
这两天,一个前端朋友在面试的笔试过程中遇到了一道类似于"用js实现将一个具有相同code值的一维数组转换成相同code值在一起的二维数组"的题目.他面试过后,把这个问题抛给了我,问 ...
- js将一维数组转化为二维数组
遇到的问题: 后端返回的是一组一维数组,但是需要展示的格式是二维数组,常见的场景举例:后台返回10个长度的数组,需要分成3个一组展示在banner上. 例:[1,2,3,4,5,6,7,8,9,10] ...
- 10-20C#基础---一维、二维数组&&冒泡排序
一.一维数组 1.定义:是某一种数据类型的数据的组合,数组用来分组基本类型或相同类型的对象.数组中的实体叫做数组的元素或成员. 2. 格式:int[ ] shuzu=new int[ 6];存放int ...
随机推荐
- 《ASP.NET Core In Action》读书笔记系列五 ASP.NET Core 解决方案结构解析1
创建好项目后,解决方案资源管理器窗口里我们看到,增加了不少文件夹及文件,如下图所示: 在解决方案文件夹中,找到项目文件夹,该文件夹又包含五个子文件夹 -Models.Controllers.Views ...
- Java EE开发技术课程第六周(jsf、facelets)
1.jsf(java sever faces) 1.1 jsf的定义: jsf是一种用于构建java web应用程序的框架.它提供了一种以组件为中心的用户界面(UI)构建方法,从而简化了Java服务器 ...
- 破圈法求解最小生成树c语言实现(已验证)
破圈法求解最小生成树c语言实现(已验证) 下面是算法伪代码,每一个算法都取一个图作为输入,并返回一个边集T. 对该算法,证明T是一棵最小生成树,或者证明T不是一棵最小生成树.此外,对于每个算法,无论它 ...
- 对八皇后的补充以及自己解决2n皇后问题代码
有了上次的八皇后的基础.这次准备解决2n皇后的问题,: //问题描述// 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行./ ...
- RC4加密解密
package util; public class RC4Util { public static String decry_RC4(byte[] data, String key) { if (d ...
- 【题解】Luogu P2081 [NOI2012]迷失游乐园
原题传送门 这是当时冬令营课上讲的题,咕咕咕到了现在 如果这题没有环套树的话,就很套路了 需要两个数组up[i]和down[i],down[i]表示从i点第一步向下走的期望距离,up[i]表示从i点第 ...
- ORACLE 12c RAC的常用管理命令
ORACLE 12c RAC的常用管理命令 一.查询 1.RAC查询 1.1.查询节点 [grid@swnode1 ~]$ su - grid [grid@swnode1 ~]$ /u01/app/1 ...
- Spring HATEOAS的简单认识
HATEOAS: 超媒体作为应用程序状态引擎(HATEOAS)是REST应用程序体系结构的一个组件,它将其与其他网络应用程序体系结构区分开来. 使用HATEOAS,客户端与网络应用程序交互,其应用程序 ...
- SVN忽略不提交文件夹
eclipse提交经常要同步后再提交或更新,但是这时有很多不需要提交的文件.文件夹比较碍事,这时候就可以在svn上设置不需要关注的文件夹: 1.windows->preferences-> ...
- Java类的加载和对象创建流程的详细分析
相信我们在面试Java的时候总会有一些公司要做笔试题目的,而Java类的加载和对象创建流程的知识点也是常见的题目之一.接下来通过实例详细的分析一下: package com.test; public ...