C#基础之数组

news2024/12/23 12:25:58

数组

在这里插入图片描述

文章目录

      • 数组
      • 1、概念
      • 2、数组的声明
      • 3、数组的使用
          • 思考1 找出随机数中的最大值,最小值
          • 思考2 数组值前后交换
          • 思考3 输入成绩,比较出最大、最小值
          • 思考4 生成一个5X5的花格子
      • 二维数组
      • 交错数组

1、概念

数组是存储一组相同类型数据的集合

数组分为一维、多维、交错数组

一般情况一维数组简称数组

2、数组的声明

//变量类型[] 数组名;
int[] arr;

//变量类型[] 数组名 = new 变量类型[数组长度];
int[] arr1 = new int[5]; //值为0

//变量类型[] 数组名 = new 变量类型[数组长度]{内容1,内容2...};
int[] arr1 = new int[5]{1,2,3,4,5};

//变量类型[] 数组名 = new 变量类型[]{内容1,内容2...};
int[] arr1 = new int[]{1,2,3,4};

//变量类型[] 数组名 = {内容1,内容2...};
int[] arr1 = {1,2,3,4};

3、数组的使用

int[] array = {1,2,3,4,5};
//1、数组长度 	(.Length)
Console.WriteLine(array.Length);
//2、获取数组中的元素	(范围0~Length-1)
Console.WriteLine(array[1]);
//3、修改数组中的元素
array[0] = 55;
Console.WriteLine(array[0]);
//4、遍历数组
for( int i = 0; i < array.Length; i++){
    Console.WriteLine(array[i]);
}
//5、增加数组的元素
int[] array2 = new int[6];
for( int i = 0; i < array.Length; i++){
    array2[i] = array[i];
}
array = array2;	//指向新的位置
array[5] = 10;
//6、删除数组中的元素
int[] array3 = new int[5];
for( int i = 0; i < array3.Length; i++){
    array3[i] = array[i];
}
array = array3;	
//7、查找数组中的元素 1 2 3 4 5
 int a = 3
 for( int i = 0; i < array.Length; i++){
     if( a == array[i]){
         Console.WriteLine("和a相等的元素再{0}索引位置",i);
         break;
     }
 }

整块代码缩进整理 Ctrl + K + D

思考1 找出随机数中的最大值,最小值
找出随机数中的最大值,最小值,总和,平均值
//从0~100随机10个数
int[] array = new int[10];
Random rnd = new Random();
int max = array[0], min = 0, sum = 0, avg = 0;
for (int i = 0; i < array.Length; i++)
{
    array[i] = rnd.Next(0, 101);
    if (i == 0)
    {
        min = array[0];
    }
    Console.WriteLine(array[i]);
    if (array[i] > max)
    {
        max = array[i];
    }
    if (array[i] < min)
    {
        min = array[i];
    }
    sum += array[i];
}
avg = sum / array.Length;
Console.WriteLine("数组中最大值{0},最小值{1},总和{2},平均值{3}", max, min, sum, avg);
思考2 数组值前后交换
//交换数组中的第一个和最后一个,第二个和倒数第二个,依次类推。
int[] array = new int[10];
int temp = 0;
Random rnd = new Random();
for (int i = 0; i < array.Length; i++)
{
    array[i] = rnd.Next(0, 101);
    Console.WriteLine(array[i]);
}
Console.WriteLine("******");
for (int i = 0; i < array.Length / 2; i++)
{
    temp = array[i];
    array[i] = array[array.Length - 1 - i];
    array[array.Length - 1 - i] = temp;
}
for (int i = 0; i < array.Length; i++)
{

    Console.WriteLine(array[i]);
}
思考3 输入成绩,比较出最大、最小值
try
{
    int[] arr = new int[3];
    int max = 0, min = 0, sum = 0, avg = 0;
    
    for (int i = 0; i < arr.Length; i++)
    {
        Console.WriteLine("请输入第{0}位同学的成绩",i+1);
        arr[i] = int.Parse(Console.ReadLine());
        if (i == 0 )
        {
            min = arr[i];
        }
        else
        {
            if (arr[i] > max)
            {
                max = arr[i];
            }
            if (arr[i] < min)
            {
                min = arr[i];
            }
        }
        sum += arr[i];
    }
    avg = sum / arr.Length;
    Console.WriteLine("最高分{0},最低分{1},总分{2},平均分{3}", max, min, sum, avg);
}
catch
{
    Console.WriteLine("输错了");
}
思考4 生成一个5X5的花格子

在这里插入图片描述

string[] strs = new string[25];
for (int i = 0; i < strs.Length; i++)
{
    if ((i + 1) % 5 == 0)
    {
        if (i % 2 == 0)
        {
            Console.Write("■");
        }
        else
        {
            Console.Write("□");
        }
        Console.WriteLine("");
    }
    else
    {
        if (i % 2 == 0)
        {
            Console.Write("■");
        }
        else
        {
            Console.Write("□");
        }
    }
}

二维数组

概念

同一变量类型行列数据组合

二维数组 是使用两个下标(索引)来确定元素数组

int[2,3] 两行,三列

声明

//变量类型[,] 二维数组变量名;
int[,] arr;
//变量类型[,] 二维数组变量名 = new 变量行[行,列];
int[,] arr = new int[3,3];
int[,] arr = new int[3,3]{{1,2.3},{1,2,3},{1,1,1}}
int[,] arr = new int[,]{{1,2.3},{1,2,3},{1,1,1}}
int[,] arr = {{1,2.3},{1,2,3},{1,1,1}}

使用

//1、二维数组的长度
行 arr.GetLength(0);
列 arr.GetLength(1);
//2、获取数组中的元素
arr[0,1]
//3、修改数组中的元素
arr[0,0] = 2
//4、遍历数组
for(int i = 0;i <arr.GetLength(0); i++ ){
    for(int j = 0; j< arr.GetLength(1); j++)
        Console.WriteLine(array[i,j]);
}
//5、增加数组的元素
int[,] arr1 =new int[2,3]
int[,] arr2 =new int[3,3]
for(int i = 0; i < arr2.GetLength(0); i++){
    for(int j = 0; j < arr2.GetLength(1); i++){
        arr2[i,j] = arr1[i,j]
    }
}
arr1 = arr2;
//arr1添加元素
arr1[2,0] = 1;arr1[2,1] = 2;arr1[2,2] = 3;
//6、删除数组中的元素
//7、查找数组中的元素 1 2 3 4 5

交错数组

1、概念:可以存储同一类型的m行确定列的数据

数组的数组,每个维度的数量可以不同

注意:二维数组每行的列数相同,交错数组每行的列数可能不同

2、声明:

//变量类型[][] 交错数组名;
int[][] arr;
int[][] arr = new int[3][];
int[][] arr = new int[3][]{new int[]{1,2,3},new int[]{1,2}new int[]{3}}
int[][] arr = new int[][]{new int[]{1,2,3},new int[]{1,2}new int[]{3}};
int[][] arr = {new int[]{1,2,3},new int[]{1,2}new int[]{3}};

3、使用

1、数组的长度
//行
    Console.WriteLine(array.GetLength(0));
//得到某一行的列数
    Console.WriteLine(array[0].Length);
2、遍历
for(int i = 0;i <arr.GetLength(0); i++ ){
    for(int j = 0; j< arr[i].Length; j++)
        Console.Write(array[i][j] + " ");
	}
	Console.WriteLine();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1627908.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【嵌入式AI开发】轻量级卷积神经网络MobileNetV1网络详解

传统卷积神经网络,内存需求大、运算量大导致无法在移动设备以及嵌入式设备上运行。模型研究得初衷就是服务于社会,应用到实际生活中,让深度学习技术服务于生活。 万物互联时代,智能终端部署模型到本地,不需连接因特网/云服务器,在边缘终端进行边缘计算。保障数据隐私,不…

【数据结构】三、栈和队列:2.顺序栈共享栈(顺序栈的初始化,判空,进栈,出栈,读取栈顶,顺序栈实例)

文章目录 1.顺序栈1.1初始化1.2判空1.3进栈1.4出栈1.5读取栈顶1.6销毁栈❗1.7顺序栈c实例 2.共享栈2.1初始化2.2判满 1.顺序栈 用顺序存储实现的栈 顺序栈的缺点&#xff1a;栈的大小不可变。 #define MaxSize 10 //定义栈中元素的最大个数 typedef struct{ElemType data[…

IDEA 中如何通过连接数据库自动生成代码

目录 1、IDEA 中安装 MyBatisX 插件 2、点击 IDEA 右侧的 database 数据库按钮&#xff0c;点击新建数据源 Data Source 3、编辑数据库连接信息 4、选择你要生成代码的数据库表 5、编辑你代码生成的基本路径以及一些配置项 6、选择annotation&#xff1a;mybatis-plus3&a…

美国洛杉矶站群服务器如何提高网站排名?

美国洛杉矶站群服务器怎么样?美国洛杉矶站群服务器如何提高网站排名?Rak部落小编为您整理发布美国洛杉矶站群服务器如何提高网站排名? 美国洛杉矶站群服务器可以通过以下几种方式帮助提高网站排名&#xff1a; - **提升网站性能**&#xff1a;美国站群服务器通常配备高速CPU…

eclipse导入工程提示Project has no explicit encoding set

eclipse导入工程提示Project has no explicit encoding set 文章目录 eclipse导入工程提示Project has no explicit encoding set一、Eclipse的工程导入二、可能的问题1.在工程名下有黄色叹号 一、Eclipse的工程导入 用Eclipse的导入可以将原有工程导入到新环境中 具体方法是&…

phpstorm 设置变量,自动补全代码

效果 进入设置->实时模板->PHP->添加 添加动态模板->完善写法 定义->选择PHP->应用就行

OpenStack云计算(十四)——综合演练手动部署OpenStack,

本项目的项目实训可以完全参考教材配套讲解的详细步骤实施&#xff0c;总体来说实训工作量较大&#xff0c;可根据需要选做&#xff0c;重点观看配套的微课视频。 项目实训一 【实训题目】 搭建OpenStack云平台基础环境 【实训目的】 掌握OpenStack基础环境的安装和配置方…

mysql8.0免安装版windows

1.下载 MySQL下载链接 2.解压与新建my.ini文件 解压的路径最好不要有中文路径在\mysql-8.0.36-winx64文件夹下新建my.ini文件&#xff0c;不建data文件夹(会自动生成) [mysqld] # 设置3306端口 port3306 # 设置mysql的安装目录(尽量用双斜杠\\,单斜杠\可能会报错) basedirD:\…

如何在vue3+vite中优雅的使用iconify图标

前言 从Vue2迁移到Vue3&#xff0c;在使用上有着很大的差别。本文的话主要是针对图标的使用差别上进行分析&#xff0c;同时给出基于iconify图标库中unplugin-icons的用法。这里特殊说明一下&#xff1a;其实element-plus中用到的图标也是基于iconify图标库的&#xff0c;在我们…

mysql中join内外连接查询例子

文章目录 join关键字概要举例using 与 on 区别 join关键字 在MySQL中&#xff0c;JOIN 是一种用于将两个或多个表中的行联合起来的操作。 连接&#xff08;join&#xff09;就是将一张表中的行按照某个条件&#xff08;连接条件&#xff09;与另一张表中的行连接起来形成一个新…

好久没关注uCOS系统的消息了,全家桶免费后,竟一直以全新的名字Flexible Safety RTOS登场,且一直在更新

【视频版】 https://www.bilibili.com/video/BV1Kb421Y7v9 好久没关注uCOS系统的消息了&#xff0c;全家桶免费后&#xff0c;竟一直以全新的名字Flexible Safety RTOS登场&#xff0c;且一直在更新 【前言】 2020年初&#xff0c;uCOS全家桶宣布免费后&#xff0c;其Github上…

paddle ocr模型量化实践

参考&#xff1a;https://github.com/PaddlePaddle/PaddleOCR/blob/main/deploy/slim/quantization/README.md https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7.1/doc/doc_ch/FAQ.md 蒸馏 剪枝 量化 参考&#xff1a;https://blog.csdn.net/mddCSDN/article/de…

医院手术室麻醉信息管理系统源码 自动生成麻醉的各种医疗文书(手术风险评估表、手术安全核查表)

目录 手术风险评估表 一、患者基本信息 二、既往病史 三、手术相关信息 四、风险评估因素 五、风险评估结果 手术安全核查表 一、患者身份与手术信息核对 二、术前准备核查 三、手术团队与职责确认 四、手术物品与设备核查 五、术中关键步骤核查 六、术后核查 七…

星融元加入超以太网联盟(UEC),推动智算网络创新实践

近日&#xff0c;星融元正式加入超以太网联盟(Ultra Ethernet Consortium,UEC)&#xff0c;该联盟是在 Linux 基金会的牵头下由多家全球头部科技企业联合成立&#xff0c;目标是突破传统以太网性能瓶颈&#xff0c;使其适用于人工智能&#xff08;AI&#xff09;和高性能计算&a…

Linux下基本指令-掌握

目录 为什么要学命令行 Linux下基本指令-掌握 ls 指令 pwd命令 cd 指令 touch指令 mkdir指令&#xff08;重要&#xff09;&#xff1a; rmdir指令 && rm 指令&#xff08;重要&#xff09;&#xff1a; man指令&#xff08;重要&#xff09;&#xff1a; cp指…

ARCGIS PRO3 三维模型OSGB转SLPK场景数据集

1.前言 因项目工作&#xff0c;需要将三维模型发布到arcgisserver上&#xff0c;但arcgisserver只支持slpk格式的模型&#xff0c;于是我开启了漫长的三维模型格式转换之旅&#xff0c;在这里记录下本人踩过的坑。 2.三维模型数据情况 2.1 模型大小&#xff1a;在20GB以上&a…

施耐德 Unity Pro 编程软件导入导出变量

适用范围 施耐德中高端PLC&#xff0c;使用的编程软件为 UnityPro &#xff08;最新版更名为 Ecostructure Control Expert&#xff09; 中端 PLC&#xff1a;Premium&#xff0c;M340高端 PLC&#xff1a;Quantum&#xff0c;M580 导出/导入变量 导出变量可导出【变量和 FB…

表演型人格的症状和起因,表演型人格测试和应对方法

都说人生不易&#xff0c;全靠演技&#xff0c;在生活这个大舞台上&#xff0c;每个人都在诠释自己的角色&#xff0c;在不同的人面前展现出了不一样的形象。面对父母&#xff0c;面对孩子&#xff0c;面对老板&#xff0c;面对同事&#xff0c;面对朋友&#xff0c;他们好像有…

BIM为电力、供水和道路工程无缝集成,助力智慧城市计划

在道路和公用事业工程中利用 Bentley Open 系列应用程序&#xff0c;项目进度加快 10%&#xff0c;节省成本 1,000 万印度卢比 推动基础设施现代化&#xff0c;实现智慧城市愿景 Dholera特别投资区位于印度艾哈迈达巴德西南 100 公里处&#xff0c;毗邻古吉拉特邦的贸易中心&a…

目标检测的mAP、PR指标含义

基本概念 什么是一个任务的度量标准。对于目标检测任务来说&#xff0c;它的首要目标是确定目标的位置并判别出目标类别。这里已医学图像为例&#xff0c;我们需要计算出血液红细胞&#xff08;RBC&#xff09;、白细胞&#xff08;WBC&#xff09;和血小板的数量。为了实现这一…