二维数组的学习

前言

        在前面我们学习了一维数组,但是有的问题需要用二位数组来解决。

        二维数组常称为矩阵,把二维数组写成行和列的排列形式,可以有助于形象化的理解二维数组的逻辑结构。

一、二维数组的定义

        二维数组定义的一般格式:

        数据类型 数组名[常量表达式1] [常量表达式2]

        例如:int a[4][10];

        a数组实质上是一个有4行、10列的表格,表格中可储存40个元素。第1行第1列对应a数组的

a[0][0],第n行第m列对应数组元素a[n-1][m-1]。

        在C语言中,二维数组中元素的排列顺序是按行排放的,即在内存中先顺序存放第一行的元素

接着存放第二行的元素......

二、二维数组的引用

        二维数组的数组元素引用与一维数组元素引用类似,区别在于二维数组元素的引用必须给出

两个下标。

        引用的格式为:

        数组名 [下标1] [下标2]

       例如:int a[3][5]

       则表示a是二维数组(相当于一个3*5的表格),共有3*5=15个元素,它们是:

       a[0][0]  a[0][1]  a[0][2]  a[0][3]  a[0][4]

      a[1][0]  a[1][1]  a[1][2]  a[1][3]  a[1][4]

      a[2][0]  a[2][1]  a[2][2]  a[2][3]  a[2][4]

      因此可以看成一个矩阵(表格),a[2][3]即表示第3行第4列的元素。

三、二维数组的初始化

1.全部赋初值

        int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

        第1个括号是第1行的数据,第2个括号是第2行的数据,第3个括号是第3行的数据。

        int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

        这写法与上面的表达效果一样,但是还是第一种方法好,界限清除。

2.部分赋初值

         int a[3][4]={{1},{5},{9}};相当于:

        int a[3][4]={{1},{0,5},{1,1,9}};相当于: 

        int a[3][4]={{1},{0},{1,1,9}};相当于: 

3.特殊赋初值

        int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

        int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};

        这两种定义方式等价,系统会自动通过总个数和第二维的长度算出第一维的长度。

四、二维数组程序例子

        将一个二为数组的的行与列的元素互换,存到另一个二维数组中。

#include<stdio.h>
int main()
{int a[2][3]={{1,2,3},{4,5,6}};int b[3][2];int i,j;printf("array a: \n");for(i=0;i<=1;i++){for(j=0;j<=2;j++){printf("%5d",a[i][j]);b[j][i]=a[i][j];}printf("\n");}printf("array b: \n");for(i=0;i<=2;i++){for(j=0;j<=1;j++){printf("%5d",b[i][j]);}printf("\n");}return 0;
}array a: 1    2    34    5    6
array b:1    42    53    6
PS C:\csay\cyuyan> 

        可以定义两个数组,数组a为3行2列存放指定的六个数,数组b为3行2列,开始时未赋值,只

要a数组中的元素a[i][j]存放到b数组中的b[j][i]元素就可以了,用嵌套的for循环可完成此任务 。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

百度智能小程序开发平台:SEO关键词推广优化 带完整的搭建教程

移动互联网的普及&#xff0c;小程序成为了众多企业和开发者关注的焦点。百度智能小程序开发平台为开发者提供了一站式的解决方案&#xff0c;帮助企业快速搭建并推广自己的小程序。本文将重点介绍百度智能小程序开发平台的SEO关键词推广优化功能&#xff0c;并带完整的搭建教程…

ElementUI Form:Radio 单选框

ElementUI安装与使用指南 Radio 单选框 点击下载learnelementuispringboot项目源码 效果图 el-radio.vue 页面效果图 项目里el-radio.vue代码 <script> export default {name: el_radio,data() {return {radio: 1,radio2: 2,radio3: 3,radio4: 上海,radio5: 上海,ra…

数据结构--堆排序(超详细!)

一、前言 堆排序与Top K问题是堆的两大应用&#xff0c;在我们日常也有很广泛的用处 我们已经上面已经说过了堆&#xff0c;这次来说堆的其中一个应用---堆排序。 二、堆排序 堆排序优势在哪里&#xff1f;有什么恐怖之处吗&#xff1f; 重点&#xff1a;拿一个举例&…

fiber学习

React原理&#xff1a;通俗易懂的 Fiber - 掘金

泰迪智能科技生成式人工智能(AIGC)实验室解决方案

AIGC&#xff08;Artificial Intelligence Generated Content&#xff0c;生成式人工智能&#xff09;是一种新的人工智能技术&#xff0c;指的是利用人工智能技术来生成内容。这种技术可以自动生成文本、图像、音频和视频等多种类型的内容&#xff0c;而且内容的质量较高&…

Qt Excel读写 - QXlsx的安装配置以及测试

Qt Excel读写 - QXlsx的安装配置以及测试 引言一、安装配置二、简单测试 引言 Qt无自带的库处理Excel 文件&#xff0c;但可通过QAxObject 借助COM接口进行Excel的读写1。亦可使用免费的开源第三方库&#xff1a;QXlsx&#xff0c;一个基于Qt库开发的用于读写Microsoft Excel文…

Security ❀ TCP异常报文详解

文章目录 1. TCP Out-Of-Order2. TCP Previous Segment Lost3. TCP Retransmission4. TCP Dup Ack XXX#X5. TCP Windows Update6. TCP Previous segment not captured7. 异常案例分析 TCP协议中seq和ack seq的联系&#xff1a; id4的http请求报文由客户端发向服务器&#xff0…

【Prometheus】Prometheus的PromQL语句

Prometheus promQL的语法&#xff1a; #时间序列 node_cpu_guest_seconds_total{cpu"0"} 监控&#xff08;指标数据&#xff09; {标签} node使用CPU的描述的统计&#xff0c;符合标签CPU0的时间序列的查询结果 指标标签生成时间序列 标签&#xff1a; __address…

品牌时代:应对非对称性风险的战略与实践

市场环境中&#xff0c;非对称性风险成为企业必须直面的挑战。非对称性风险指的是企业在经营过程中面临的不确定性因素&#xff0c;这些因素可能导致企业遭受重大损失或获得巨大收益。为了应对这种风险&#xff0c;企业需要从产品导向转向品牌导向&#xff0c;通过品牌建设来提…

解决:ModuleNotFoundError: No module named ‘selenium’

解决&#xff1a;ModuleNotFoundError: No module named ‘selenium’ 文章目录 解决&#xff1a;ModuleNotFoundError: No module named selenium背景报错问题报错翻译报错位置代码报错原因解决方法方法一&#xff0c;直接安装方法二&#xff0c;手动下载安装方法三&#xff0…

跟着cherno手搓游戏引擎【12】渲染context和首个三角形

渲染上下文&#xff1a; 目的&#xff1a;修改WindowsWindow的结构&#xff0c;把glad抽离出来 WindowsWindow.h:新建m_Context #pragma once #include "YOTO/Window.h" #include <YOTO/Renderer/GraphicsContext.h> #include<GLFW/glfw3.h> #include…

突破瓶颈,提升开发效率:Spring框架进阶与最佳实践-IOC

IOC相关内容 1.1 bean基础配置1.1.1 bean基础配置(id与class)1.1.2 bean的name属性步骤1&#xff1a;配置别名步骤2:根据名称容器中获取bean对象步骤3:运行程序 1.1.3 bean作用范围scope配置1.1.3.1 验证IOC容器中对象是否为单例验证思路具体实现 1.1.3.2 配置bean为非单例1.1.…

ASP .NET Core Api 使用过滤器

过滤器说明 过滤器与中间件很相似&#xff0c;过滤器&#xff08;Filters&#xff09;可在管道&#xff08;pipeline&#xff09;特定阶段&#xff08;particular stage&#xff09;前后执行操作。可以将过滤器视为拦截器&#xff08;interceptors&#xff09;。 过滤器级别范围…

Redis -- 开篇热身,常用的全局命令

目录 Redis重要文件 启动停止脚本 配置文件 持久化文件存储目录 核心命令 set get 全局命令 keys exists del expire ttl 过期策略是如何实现的 定时器 type 小结 Redis重要文件 启动停止脚本 /usr/bin/redis-benchmark &#xff1a; 用于对Redis做性能基准…

搭建nginx图片服务器

&#xff08;1&#xff09;将图片存储于/home/data/images目录&#xff1b; &#xff08;2&#xff09;配置nginx.conf user nginx; worker_processes 4;error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid;events {worker_connections 10000; }ht…

编译Opencv3.3.1遇到的编译器无法识别的警告的问题解除:

问题描述&#xff1a; 本文&#xff0c;就是在一个硬件的SDK中用到了opencv3.3.1的版本&#xff0c;在笔者目前的VS2019,CUDA11版本下编译的问题和解决。在做Cmake的configure的时候&#xff0c;Cmake报了一个找不到编译器版本的错误, Selecting windows SDK version 10.0.1904…

【时间安排】

最近刚刚回到家&#xff0c;到家就是会有各种事情干扰&#xff0c;心里变乱人变懒的&#xff0c;而要做的事情也要继续&#xff0c;写论文&#xff0c;改简历&#xff0c;学习新技能。。 明天后天两天写论文改简历 周一&#xff08;早上去城市书房&#xff0c;可能吵一点戴个耳…

JVM学习

1.Java虚拟机内部有哪些线程共享&#xff0c;那些线程隔离 程序计数器&#xff1a; 通过改变这个计数器的值来选取下一条需要执行的字节码命令 Java虚拟机栈&#xff1a; 栈&#xff0c;每个方法被执行时&#xff0c;Java虚拟机都会同步的创建一个栈帧用于存储局部变量表&…

Java面试架构篇【一览众山小】

文章目录 &#x1f6a1; 简介☀️ Spring&#x1f425; 体系结构&#x1f420; 生命周期 &#x1f341; SpringMVC&#x1f330; 执行流程 &#x1f31c; SpringBoot&#x1f30d; 核心组件&#x1f38d; 自动装配&#x1f391; 3.0升级 &#x1f505; spring Cloud Alibaba&am…

数字滤波器的技术指标

文章目录 幅频特性指标异 相频特性指标各型滤波器的幅度响应表征数字滤波器频率响应特性的三个参量(1) 幅度平方响应(2) 相位响应(3) 群延迟响应 数字滤波器的技术指标一般可以用幅频特性和相频特性指标来给出。 设数字滤波器的频率响应为&#xff1a; H ( e j ω ) ∣ H ( e…