数组

C++数组(数组定义方式、数组名作用、数组地址) 文章目录1 数组概述2 一维数组2.1 一维数组定义方式2.2 一维数组数组名2.3 冒泡排序3 二维数组3.1 二维数组定义方式3.2 二维数组数组名3.3 二维数组应用案例 1 数组概述 数组是一个集合,用于存放相同类型的数据元素。 特点1:数组中的每个数据元素具有相同的数据类型。 特点2:数组占用一段连续的内存空间。 2 一维数组 2.1 一维数组定义方式 注1:数组名的命名规范与变量名命名一致,且数组名不能与变量重名。 注2:数组的下标/索引从0开始。 一维数组定义的3种方式: (1)数据类 阅读详情

1. 数组的定义

int[] arr1=new int[10];

2. 数组的初始化

		int[] arr2=new int[4];
		int[] arr3={1,4,5,7};
		int[] arr4=new int[]{1,4,5,7};
		int[] arr5;
		//arr5={1,4,5,7};//编译错误,只能声明同时
		arr5=new int[]{1,4,5,7};

3. 数组的访问

		int[] arr6=new int[3];
		System.out.println(arr6.length);//3
		arr6[0]=100;//给第一个元素赋值为100
		arr6[1]=200;//给第二个元素赋值为200
		arr6[2]=300;
		//arr6[3]=400;//数组下标越界异常
		System.out.println(arr6[arr6.length-1]);

4. 数组的遍历

		int[] arr7=new int[10];
		for(int i=0;i<arr7.length;i++){
			arr7[i]=(int)(Math.random()*100);
		}
		for(int i=0;i<arr7.length;i++){
			System.out.print(arr7[i]+"\t");
		}

5. 数组的复制

//(1) Arrays.copyOf()
		    int[] a={10,20,30,40,50};//a:源数组 a1:目标数组  6:目标数组的长度
		 	int[] a1=Arrays.copyOf(a, 6);
			for(int i=0;i<a1.length;i++){
				System.out.println(a1[i]);//10,20,30,40,50,0
			}
//还可以用来给数组扩容
			 int[] a={10,20,30,40,50};
			 a=Arrays.copyOf(a,a.length+1);//这里的a是一个新的数组,长度为之前的加一。如果想扩大两个就加二,想减小一个就减一。。这个a和上面的a不一样,将源数组中的内容复制过来
			 for(int i=0;i<a.length;i++){
				System.out.println(a[i]);//10,20,30,40,50,0
				}
				
//(2) arraycopy()	灵活性更好 效率更高	
				int[] a={10,20,30,40,50};
				int[] a1=new int[6];//0,0,0,0,0,0
				System.arraycopy(a, 1, a1, 0, 4);
				//a:源数组   1:源数组的起始下标    a1:目标数组   0:目标数组的起始下标   4:要复制元素的个数
				for(int i=0;i<a1.length;i++){
					System.out.println(a1[i]);//20,30,40,50,0,0
					}

6. 数组的排序Arrays.sort()效率最高

				int[] arr={10,45,4,2,6,75,345,24};
				Arrays.sort(arr);
				for(int i=0;i<arr.length;i++){
					System.out.print(arr[i]+"\t");
				}

7. 找数组中的最大值

   找最大值的算法:
 * 1.假设第一个元素为最大值
 * int max=arr[0];
 * 2.遍历剩余元素,将剩余元素与max做对比,若剩余元素大于max,修改max为较大的数
 * for(int i=1;i<arr.length;i++){
 * 	if(arr[i]>max){
 * 		max=arr[i]
 * 		}
 * 	}
		int[] arr=new int[10];
		for(int i=0;i<arr.length;i++){
			arr[i]=(int)(Math.random()*100);
		}
		for(int i=0;i<arr.length;i++){
			System.out.print(arr[i]+"\t");
		}
		int max=arr[0];//假设第一个元素为最大值
		for(int i=1;i<arr.length;i++){//遍历剩余元素,将剩余元素与max做对比
			if(arr[i]>max){//若剩余元素比max大
				max=arr[i];//修改max为较大的值
			}
		}
		System.out.print("最大值为:"+max+"\t");
		System.out.println("长度为:"+arr.length);
		arr=Arrays.copyOf(arr, arr.length+1);//扩容
		arr[arr.length-1]=max;//将最大值赋值给最后一个元素
		for(int i=0;i<arr.length;i++){
			System.out.print(arr[i]+"\t");
		}
		System.out.println("长度为:"+arr.length);

冒泡排序
冒泡的工作原理:
(1)四个数冒三轮
(2)每一轮都是从第一个元素开始冒
每一次都是和它的下一个元素比较
(3)冒出来的数就不带它玩了


		int[] arr=new int[4];
		for(int i=0;i<arr.length-1;i++){//控制轮数  4个数冒3轮
			for(int j=0;j<arr.length-1-i;j++){//控制每一轮的次数         
				//i=0  比3次 ,i=1 比2次,i=2 比1次  次数=arr.length-1-i
				if(arr[j]>arr[j+1]){//每一次都是和他的下一个元素比
					int t=arr[j];//如果这个数比他的下一个元素大,则交换,保证前数小于后数(升序)
					arr[j]=arr[j+1];
					arr[j+1]=t;
					//若要为降序,则arr[j]<arr[j+1]
				}
			}
		}

			for(int i=0;i<arr.length;i++){
				System.out,println(arr[i]);
			}

九九乘法表

		for(int i=1;i<=9;i++){//控制行
			for(int j=1;j<=i;j++){//控制列
				System.out.print(i+"*"+j+"="+i*j+"\t");
			}
			System.out.println();//换行
		}

判断一个数是否是质数

		int num=100;
		boolean flag=true;//1.假设是质数
		/*整个for循环结束都没有进到if里面,说明是质数
		只要进到if里面,就说明不是质数
		for(int i=2;i<num;i++){//2 3 4 5 6 7 8···99
    	100去取余(一半以后)51 52 53··· 99都是没有意义的,因为商不到2,所以基本都是商1余某数,所以肯定不得0*/
		//优化方案1:for(int i=2;i<=num/2;i++){//对前一半的数取余,注意取等,取等的时候商2,  2 3 4 5···50
		for(int i=2;i<=Math.sqrt(num);i++){//优化方案2:对他的平方根之前的数取余2 3 4 5 ···10
		if(num%i==0){
				flag=false;//2.改为不是质数
				break;
			}
		}
		if(flag){//3.判断得出结论  作用等于 if(flag==true)----> if(!flag)相当于if(flag==false)
			
			System.out.println(num+"是质数");
		}else{
			System.out.println(num+"不是质数");
		}
	
	

求2到100之间的质数----常见的面试题

		int count=0;//---质数的个数 计数器
		for(int num=2;num<=100;num++){
			boolean flag=true;
			for(int i=2;i<=Math.sqrt(num);i++){
				if(num%i==0){
						flag=false;
						break;
					}
				}
				if(flag){
					count++;//质数个数增1
					System.out.print(num+"\t");
					if(count%10==0){
						System.out.println();
					}
				}
		}
09-数组的含义以及零长数组变长数组与多维数组 阅读详情

相关推荐

关于Delphi中的静态数组、动态数组、检测数组上下界、copy数组

/1. 标准方法:var//定义静态数组//2. 可以使用非0下标:var//不能提倡,这样不容易与系统函数沟通//3. 根据预定义类型来声明数组:type//先定义一个数组类型var//再定义静态数组//4. 在非过程区可以直接赋值:var//5. 多维数组:varbegin//使用end;//6. 根据子界定义数组:typevar//7. 根据枚举定义数组:typevarbeginMyArr[Enum1] := '十月';//十月。

兴趣使然的编程菜鸟 2830

【C语言数组】一维数组,二维数组详解,数组传参,变长数组,这篇文章让你更全面的认识数组。

【C语言数组】详解一维数组,二维数组,数组传参,变长数组,这篇文章让你更全面的认识数组。

程序员良辰 2705

YOLOv8使用设备摄像头实时监测

YOLOv8使用设备摄像头实时监测

Joining667的博客 4188

C语言数组之指针数组和数组指针

指针数组指针数组指针数组

weixin_34481217的博客 1万+

MTK-Display技术解析:从MDP到DDP的架构演进

本文深入解析了联发科(MTK)显示技术从MDP到DDP的架构演进。MDP作为多媒体数据预处理中心,负责格式转换与缩放;而DDP则整合了OVL、COLOR、AAL等模块,并引入CMDQ与场景化模式,实现了从分散处理到统一智能调度的飞跃,旨在提升画质、流畅度并降低功耗。

weixin_29218509的博客 255

知识检索中的四大评估指标:准确率、精确率、召回率与F1分数详解

摘要:NLP算法面试中,评估知识检索系统的核心指标包括准确率、精确率、召回率和F1分数。准确率衡量整体预测正确性,但在样本不均衡时可能失真;精确率关注预测正类中的真实比例(查准能力),召回率衡量真实正类被预测的比例(查全能力)。F1分数是两者的调和平均,提供综合评估。这些指标通过混淆矩阵计算,并存在制约关系:提高召回率往往降低精确率,反之亦然。应用场景包括文档检索(评估结果质量和覆盖度)和文本分类(如垃圾邮件过滤)。面试需掌握指标区别、适用场景及平衡方法(如调整阈值)。F1分数在样本不平衡时比准确率更具参考

Ven%的博客 1764

C++ 数组、数组指针、指针数组、动态数组等详解

先了解一下数组的结构,然后接着了解动态数组的结构。 数组数组: (1)数组大小固定。 (2)数组是一种复合类型 (3)存放类型相同的对象的容器,需要通过所在位置访问这些对象。 (4)数组的元素应该为对象,因此不存在引用的数组 (5)维度:数组中元素的个数,必须大于0,编译的时候维度应该是已知的,也就是说,维度必须是一个常量表达式。 (6)不能将数组的内容拷贝给其他数组作为其初始值,也不

暖心~的博客 5283

ChatUI vs Ant Design X 技术选型对比

维度ChatUI优势轻量级、易上手、完美兼容 Ant Design全能型框架、企业级扩展性、深度模型集成局限性功能单一、缺乏高级交互支持学习曲线陡峭、包体积较大最佳实践单独聊天窗口集成整体智能助手系统开发通过对比可见,ChatUI 适合快速实现基础对话功能,而Ant Design X 更适合构建复杂的 AI 驱动应用。实际选择时需结合项目规模、团队技术栈和对交互复杂度的需求综合评估。

四楼没电梯的专栏 2265

php数组(数组的定义、使用、删除数组、数组操作符、数组排序、数组元素查找、数组的常用函数)

var_dump()函数与print_r()函数的用法类似,但是var_dump()函数的功能更加强大,它可以在打印数组元素的同时打印元素中值的数据类型。关联数组是指下标为字符串的数组。在数组$arr中只定义了数组元素的值,省略了“键”的部分,则$arr默认为索引数组,并且“键”从0开始,依次递增。array_merge()将一个或多个数组的单元合并起来,一个数组中的值附加在另一个数组的后面,返回一个新的数组。由于数组中的键和值是映射关系,并且键是数组元素的唯一标识,所以可以根据元素的键来获取该元素的值。

m0_69034993的博客 4977

MFC下使用C++操作Word文档

由于项目需求,在MFC环境下操作将数据和图片写入word文档,之前没有接触过,网上查阅了很多资料,终于把任务完成。理解的不是很透彻,但是这些东西应该够用了,写篇博客记录一下,以便以后再用到。 (1)VS环境下创建一个MFC应用程序,然后在项目上单击右键,选择 类向导-----添加类----类型库中的MFC类。在弹出的对话框中选择文件,位置选择office安装目录下的...

GIS_yuhua的博客 7579

107.在 Vue 3 中使用 OpenLayers 实现视图联动功能

是一个非常强大的 Web 地图渲染库,支持多种地图数据格式和交互操作。在 Vue 3 中,我们可以利用。绑定到真实的 DOM 元素上,我们就可以用它们来初始化 OpenLayers 地图。来封装和管理 OpenLayers 地图的状态,从而更高效地开发地图应用。,即两个地图窗口共享同一个视图(View),从而实现同步缩放、拖动等操作。这可以确保 Vue 组件销毁时,OpenLayers 也正确销毁地图实例。,并且它们会同步缩放和拖动,达到地图联动的效果。这样,无论你拖动哪个地图,另一个都会同步变化。

小彭的博客 1938

数组与数组对象

有很多初学者可能会觉得这两个是一样的,以前我也是这么认为的。但是它们是不一样的,虽然他们都是数组。数组只是一个值得集合,而数组对象是一个对象的集合;数组对象的范围更大。 数组是一个值得集合,每一个值都有一个索引号,索引从0开始而每个索引都有一个相应的值,根据需要添加更多的值。数组有一维数组、二维数组等。 我们知道变量用来存储数据,一个变量只能存储一个内容。如果需要存储更多的数据一个变量是不能够满足...

weixin_44560796的博客 9155

Linux内核驱动模型--PCIe(PCI Express)驱动​​

本文系统介绍了Linux内核中PCIe驱动的设计与实现。首先从架构定位入手,指出PCIe驱动基于PCI子系统扩展支持高速、低功耗特性。核心数据结构struct pci_driver包含设备匹配表id_table、生命周期函数probe/remove等关键组件。文章详细解析了驱动与设备的绑定流程、资源管理机制,并重点阐述了MSI-X中断、电源管理、热插拔和多队列等高级特性实现方案。最后提供了lspci、dmesg等调试工具的使用方法,总结了PCIe驱动在支持高性能设备中的关键作用。全文通过架构设计、核心结构、

amy_mhd的博客 428

21.可能是全网最详细的shell中数组详解,声明数组,数组赋值,显示所有数组,引用数组,引用数组所有元素,数组长度,删除数组,数组切片,追加元素,关联数组,综合案例

数组是若干数据的集合,其中的每一份数据都称为元素。本小节详解shell中数组,声明数组,数组赋值,显示所有数组,引用数组,引用数组所有元素,数组长度,删除数组,数组切片,追加元素,关联数组,综合案例

Oracle/MySQL 到 国产信创数据库|迁移 · 调优 · 信创替换 3457

基于Flink的流式数据降维实现方案

理解为何实时场景需要降维(解决维度灾难)掌握Flink流处理与降维算法的结合方式学会用Flink实现一个可落地的流式降维系统覆盖内容包括:Flink流处理基础、降维算法选择(侧重在线算法)、Flink与降维的集成方案、实战代码示例,以及工业级场景的应用经验。本文从“为什么需要流式降维”出发,用“快递分拣”的生活案例引出核心概念;接着拆解Flink流处理、数据降维的底层逻辑;然后重点讲解“在线PCA”这一适合流式场景的降维算法,并用Flink实现一个完整的流式降维管道;

AI 领航者的博客 567

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C#数组 一维数组、二维数组、三维数组

一位数组: 初始化:int[] arr = new int[5] = {1,2,3,4,5}; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace wm110_5 { class Program { static void

qingdujun 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

数组 从数组中去掉元素为0的数组

数组 从数组中去掉元素为0的数组 需求:定义一个整型数组,将数组中的0去掉后返回一个新数组。 例如:数组为 int[] arr={1,13,45,5,0,0,16,6,0,25,4,17,6,7,0,15}; 要求将以上数组中为0的元素去掉,将不为0的值存入一个新数组,生成新的数组作为返回值: int[] newArr={1,13,45,5,16,6,25,4,17,6,7,15}; 思路: 遍历一次 把不为零的元算一遍 计算有多少个不为零的数 定义一个新数组 长度为不为零的元素的个数 再遍历一次

weixin_44434205的博客 4923

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

VBA数组知识,数组的组合和嵌套,一维数组的组合并非二维数组,二维数组的组合并非三维数组

1 数组嵌套的知识 1维数组的嵌套并非2维数组 二维数组的嵌套并非三维数组 2 数组的嵌套写法 1维数组的嵌套:arr(m)(i) 2维数组的嵌套:arr(m)(i,j) Sub test1001() Debug.Print "测试一维数组和其嵌套" '一维数组 arr1 = Array(1, 3, 5, 7, 9) arr2 = Array(2, 4, 6, 8, 10) ...

奔跑的犀牛先生 4528

数组与匿名数组

首先数组是一种数据结构 数组是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。这些无序排列的同类数据元素的集合称为数组。数组是用于储存多个相同类型数据的集合。 我们可以...

wy15027539821的博客 3305

什么是数组、如何创建数组、数组赋值、数组增加一个新元素

一起组团(什么是数组)我们知道变量用来存储数据,一个变量只能存储一个内容。假设你想存储10个人的姓名或者存储20个人的数学成绩,就需要10个或20个变量来存储,如果需要存储更多数据,那就会变的更麻烦。我们用数组解决问题,一个数组变量可以存放多个数据。好比一个团,团里有很多人,如下我们使用数组存储5个学生成绩。数组是一个值的集合,每个值都有一个索引号,从0开始,每个索引都有一个相应的值,根据需要添加...

qq_42453950的博客 9394

一维数组,二维数组,三维数组

一维数组 简称数组,形式为a[i],在内存中占用i个大小相等的连续空间,其中数组名a为该空间的首地址,类似于&a[0],数组名不是指针,但可以转化成指针使用。 例如: char a[3];假设数组的首地址为0x0, 则&a[2]则为0x2; 二维数组 形式为a[i][j],其中i表示行数,j表示列数,在内存中占用i * j个大小相等的连续空间,其中数组名a为该空间的首地址,类似于&a[0][0],a[1]为第1行的首地址,类似于&a[1][0]。 例如: char a[4][

weixin_42282031的博客 2698

什么是伪数组 以及伪数组转真数组的方法

伪数组 转真数组的方法

Tsailing666的博客 4097

数组、二维数组、多维数组、交错数组

一、什么是数组? 所谓数组,是有序的元素序列。 数组是用于储存多个相同类型数据的集合。 数组是一块连续的内存空间。 把具有相同类型的若干元素按无序的形式组织起来,这些无序排列的同类型元素的集合被称为数组。 二、数组的基本结构 1.基本申明形式 基本结构:变量类型[]变量名 = new 变量类型[数组长度]{元素,元素,元素}; int[]Arr = new int[5]; //只设定初始数组...

幽风诺月的博客 1148

如何看待一维数组以及二维数组的数组名、首元素、数组地址

一维数组 定义一个数组:int a[5]; 此处,a,&amp;a[0]以及&amp;a做右值时在数值上是完全相同的,但含义不同。 数组名a只能做右值,不能做左值。做右值是表示数组首元素首的地址,同&amp;a[0],如: 定义一个int *类型指针int * p,此时p=a和p=&amp;a[0]完全是一个效果,一个意思。 &amp;a[0]即数组首元素首地址,只能做右值,同数组名a做...

weixin_39330853的博客 2936

C# 数组相关:不可变数组、多维数组、交错数组、隐式类型化数组、 数组协变、 Array类

不可变数组、多维数组、交错数组、隐式类型化数组、 数组协变、 Array类 数组是引用类型;int[ ] 中 int 也是类型,所以数组可以认为是复合类型数组名最好加 s数组是集合,集合不一定是数组数组的元素 的类型 既可以是引用类型也可以是值类型;分别称为:引用类型数组 和 值类型数组。创建数组实例后,其每个元素都有默认值,string 的为空字符串,int 的为 0 ,bool 的为 false,引用类型的为 null;

weixin_48990772的博客 1446

Js中的索引数组,关联数组,类数组对象 对象和数组

Js中的索引数组,关联数组,类数组对象 对象和数组 1.创建数组 1.1.数组字面量创建 var arr1=[1,2,3]; 1.2.调用构造函数创建(有3种调用方法) i.调用时没有参数 var arr=new Array(); 该方法创建一个没有任何元素的空数组,等价于[] 1.2.调用时有一个数值参数,指定数组的长度 var arr=new Array(3); 这种形式可以用来预分配一个存储空间,注意:数组中没有储存值,甚至数组的索引属性,"0" "1"等都还未定义 1.3. 显示指定两个或多

神奇的兔子 1553
上一篇: 循环结构
下一篇: 方法
兔子eo
博客等级 码龄8年 2粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值