【C++入门】学习使用二维数组基本知识及用法详解

news/2024/5/17 9:35:11/文章来源:https://blog.csdn.net/CSDN_linyanchen/article/details/126538395

在这里插入图片描述


iecne


🧛‍♂️iecne个人主页:iecne的学习日志
💡每天关注iecne的作品,一起进步
💪一起学习,必看iecne
🐳希望大家多多支持🥰一起进步呀!
iecne


文章目录

  • 一.定义方式
    • 1.1 逐个定义
    • 1.2 定义赋值
    • 1.3 定义赋值*2
  • 二.二维数组
  • 三.基本样例
    • 3.1 输入输出成绩
    • 3.2 比大小
  • 总结


一.定义方式

二维数组就是在一维数组上多加一个维度。
建议:以下三种定义方式,利用第二种更加直观,提高代码可读性

1.1 逐个定义

#include <iostream>
using namespace std;
int main()
{int arr[2][3];arr[0][0] = 1;arr[0][1] = 2;arr[0][2] = 3;arr[1][0] = 4;arr[1][1] = 5;arr[1][2] = 6;for (int i = 0; i < 2; i++){for (int j = 0; j < 3; j++){cout << arr[i][j] << endl;}}
}

1.2 定义赋值

第二种就是在定义一个数组的时候直接开始赋值
具体如下

int arr2[2][3] ={{1,2,3},{4,5,6}};for (int i = 0; i < 2; i++){for (int j = 0; j < 3; j++){cout << arr2[i][j] <<" ";}cout << endl;}

1.3 定义赋值*2

int arr3[2][3] = { 1,2,3,4,5,6 };for (int i = 0; i < 2; i++){for (int j = 0; j < 3; j++){cout << arr3[i][j] <<" ";}cout << endl;}

这里输出的就是

1 2 3 4 5 6

大部分基本就是这样了


二.二维数组

比如定义一个三行四列的二维数组
在这里插入图片描述

这里我们就有12个可以储存数据
当然我们也可以不把0为开头,和一维数组同理哈

实际上可以这样比喻:一维数组是一列格子,二维数组就是一个长方形,每一个像素都是一个格子


三.基本样例

3.1 输入输出成绩

我们可以想想,若一个班有三个学生,每个学生需要学 语数英科 四门学科,也就是我们需要统计12门学科
那么我们应该如何模拟呢?

比如一个班有张三、李四、王五三个学生那么就应该这样:

#include <iostream>
using namespace std;
int main()
{int clas[3+5][4+5];return 0;
}

这里我们注意一下,定义一个数组的时候一定要多开 10或者5,但是至少要>1,否则可能越界,就是会超过我们数组,导致运行错误

所以我们直接开clas[8][9]即可

接下来我们输入

#include <iostream>
using namespace std;
int main()
{int clas[3+5][4+5];cout << "请输入张三的成绩";for (int i = 1; i <= 4; i++){cin >> clas[1][i];}cout << "请输入李四的成绩";for (int i = 1; i <= 4; i++){cin >> clas[2][i];}cout << "请输入王五的成绩";for (int i = 1; i <= 4; i++){cin >> clas[3][i];}return 0;
}

接下来我们完成输出

#include <iostream>
using namespace std;
int main()
{int clas[3+5][4+5];cout << "请输入张三的成绩" << endl;for (int i = 1; i <= 4; i++){cin >> clas[1][i];}cout << "请输入李四的成绩" << endl;for (int i = 1; i <= 4; i++){cin >> clas[2][i];}cout << "请输入王五的成绩" << endl;for (int i = 1; i <= 4; i++){cin >> clas[3][i];}cout << endl << "张三的成绩:" << endl;for (int i = 1; i <= 4; i++){cout << clas[1][i] << " ";}cout << endl << "李四的成绩:" << endl;for (int i = 1; i <= 4; i++){cout << clas[2][i] << " ";}cout << endl << "王五的成绩:" << endl;for (int i = 1; i <= 4; i++){cout << clas[3][i] << " ";}return 0;
}

如此
我们就完成了三人四科的输入输出


3.2 比大小

比大小这块我们就需要再输入的时候改造改造,并且用到max函数和min函数

输入同理

#include <iostream>
using namespace std;
int main()
{int clas[3+5][4+5];cout << "请输入张三的成绩" << endl;for (int i = 1; i <= 4; i++){cin >> clas[1][i];}cout << "请输入李四的成绩" << endl;for (int i = 1; i <= 4; i++){cin >> clas[2][i];}cout << "请输入王五的成绩" << endl;for (int i = 1; i <= 4; i++){cin >> clas[3][i];}return 0;
}

接下来我们定义三个s用来统计信息,并且再统计最大和最小

#include <iostream>
using namespace std;
int main()
{int clas[3+5][4+5];int s[3 + 5];cout << "请输入张三的成绩" << endl;for (int i = 1; i <= 4; i++){cin >> clas[1][i];s[1] += clas[1][i];}cout << "请输入李四的成绩" << endl;for (int i = 1; i <= 4; i++){cin >> clas[2][i];s[2] += clas[2][i];}cout << "请输入王五的成绩" << endl;for (int i = 1; i <= 4; i++){cin >> clas[3][i];s[3] += clas[3][i];}int maxs = max({ s[1], s[2], s[3] });int mins = min({ s[1],s[2],s[3] });return 0;
}

最后输出完善

#include <iostream>
using namespace std;
int main()
{int clas[3+5][4+5];int s[3 + 5];cout << "请输入张三的成绩" << endl;for (int i = 1; i <= 4; i++){cin >> clas[1][i];s[1] += clas[1][i];}cout << "请输入李四的成绩" << endl;for (int i = 1; i <= 4; i++){cin >> clas[2][i];s[2] += clas[2][i];}cout << "请输入王五的成绩" << endl;for (int i = 1; i <= 4; i++){cin >> clas[3][i];s[3] += clas[3][i];}int maxs = max({ s[1], s[2], s[3] });int mins = min({ s[1], s[2], s[3] });cout << "总分最好的是" << maxs;;cout << endl;cout << "总分最差的是" << mins;return 0;
}

但是如果s[]有多个一样就只能去重了,有多种方法比如用bool类标记输出或等……


总结

本节课主要是讲解了C++的教程,至此该课示例的思想博主已经真真切切彻彻底底分享完了,相信大家对这个逻辑有了一定的理解,大家可以自己动手敲敲代码,感受一下,包教包会。若有任何侵权和不妥之处,请私信于我,定积极配合处理,看到必回!!!

帅的人已然点赞收藏关注,而丑的人还在犹豫,被犹豫了,快三连吧!
原创不易,还希望各位大佬支持一下
点赞,你的认可是我创作的动力!
收藏,你的青睐是我努力的方向!
评论,你的意见是我进步的财富!
iecne


感谢每一个观看本篇文章的朋友,更多精彩敬请期待~( ̄▽ ̄~)~:
iecne的博客
若有任何侵权和不妥之处,请私信于我,定积极配合处理,看到必回!!!

iecne

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

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

相关文章

深度学习进阶-自然语言处理-04-基于计数的方法(上)

语料库&#xff1a;大量的文本数据 语料库通常采用树的结构&#xff0c;我们这里的与料理假定没有添加任何标签&#xff0c;在实际项目中&#xff0c;一般都会给文本数据添加标签&#xff08;如&#xff0c;词性&#xff09; 1 语料库的预处理 步骤一:创建单词列表 #样本文章…

JavaScript学习笔记:Navigator

<!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><script>// BOM// 浏览器对象模型// BOM可以使我们通过js来操作浏览器// 在BOM中为我们提供了一组对象&#xff0c;用来完成对浏览器的操作// BOM对象/…

基本控件案例集锦(下)

基本控件案例集锦&#xff08;下&#xff09; DatePicker&#xff0c;TimePicker&#xff0c;AlertDialoig 1.DatePicker 1.1简介 1.简介&#xff1a; Android为用户提供显示日期与时间的控件DatePicker和TimePicker。 日期选择控件(DatePicker)主要功能是向用户提供包含年…

JS面向对象之构造函数和原型(2)

文章目录1.构造函数1-1.使用构造函数面向对象1-2.构造函数里面的原型prototype1-3.对象原型__proto__1-4.constractor构造函数1-5.构造函数、实例、原型对象三者之间的关系1.构造函数 1-1.使用构造函数面向对象 ES6之前对象的公共部分&#xff0c;不是使用类解决的&#xff0…

沉睡者IT - [短视频运营] 抖音短视频成SEO新风口

下面会从以下5个企业关心的问题来聊聊&#xff0c;如果有什么不明白的地方可以评论交流。 一、什么是SEO? 二、为什么要做抖音SEO? ​三、哪些企业适合做抖音SEO? 四、抖音SEO怎么做? 五、影响抖音排名的因素有哪些? 一、什么是SEO? SEO是“搜索引擎优化”英文单词首字母…

C++ 函数学习笔记

前言&#xff1a;主要是自己学习过程的积累笔记&#xff0c;所以跳跃性比较强&#xff0c;建议先自学后拿来作为复习用。 文章目录1 函数基础2 参数传递2.1 const 形参和实参2.2 引用形参2.3 数组形参2.4 数组引用形参2.5 多维数组形参2.6 可变形参3 返回类型和 return 语句3.1…

ASP.NET Core--依赖注入

文章目录依赖注入什么是依赖注入什么是依赖什么是注入依赖注入解决的问题.Net Core DI替换默认服务容器依赖注入 什么是依赖注入 什么是依赖 Rely类 public class Rely {public Task Test(string testMessage){Console.WriteLine(testMessage);return Task.FromResult(0);}…

【QT学习】如何绘制圆角窗口?

文章目录前言一、实现效果二、基础知识1.QBitmap类2.QPainter类3.setMask函数三、实现代码总结前言 在使用QT创建窗口时&#xff0c;所创建出来的默认窗口都是矩形的。当我们隐藏默认标题栏&#xff0c;想自己绘制自定义的标题栏时&#xff0c;就会发现矩形的窗口过于棱角分明。…

加深印象篇之Servlet

环境配置 需要配置web.xml文件,如图所示: userServlet:是指那个继承自HttpServlet的.java文件的名称 index.jsp:是指那个随意一个.jsp文件名称即可 要使用到Servlet相关类,需要提前将相关导包导入到pom.xml文件中 相关文件的编写 1、JDBCUtils.java文件(存储连接数据库的…

(附源码)计算机毕业设计ssm大数据学院图书管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

web前端面试题附答案016-怎么让顶部轮播图渲染的更快?

一、为什么强调轮播图&#xff1f; 很多时候我们强调用户体验&#xff0c;而这里更多时候我们更强调完美的首屏体验&#xff0c;而现在几乎每个网站顶部第一个大模块就是轮播图。轮播图占得区域最大&#xff0c;图片质量也更高&#xff0c;几乎一张图片的面积&#xff0c;体积就…

【C语言】结构体字节对齐

目录 前言 一、什么是字节对齐&#xff1f; 二、结构体字节对齐 三、#pragma pack()的使用 总结 结语 封面 前言 本教程可能会用到一点汇编的知识&#xff0c;看不懂没关系&#xff0c;知道是那个意思就行了。使用的工具是vs2010。 一、什么是字节对齐&#xff1f; 字节…

【易购管理系统】商品列表

我们来写一下商品管理界面 在Goods.vue中 <template><div><!-- 1.搜索区域 --><div class"header"></div><!-- 2.表格区域展示视图数据 --><div class"wrapper"></div><!-- 3.分页 --></div&g…

数据分析3-pandas

文章目录pandaspandas常用数据类型1.Series的创建pandas读取外部数据pandas读取数据库DataFrame基础字典列表排序索引loc与iloc字符串离散化数据的合并pandas pandas常用数据类型 Series一维数据&#xff0c;带标签数组 DataFrame 二维&#xff0c;Series容器 import pandas …

【ElasticSearch】(分组统计,自动补全,数据同步)

分组统计&#xff0c;自动补全&#xff0c;数据同步1.分组统计1-1.聚合为桶1-2.桶内度量2.RestAPI结果条件过滤数据同步安装MQ声明交换机、队列发送MQ消息接收MQ消息搭建集群修改系统配置集群状态监控1.分组统计 桶(bucket): 桶的作用&#xff0c;是按照某种方式对数据进行分…

关苏哲-洞察问题本质,解决工作难题

高效管理者的三大技能 问题界定的6个问题 1.你所需要解决的问题是什么&#xff1f; 2.你为什么需要解决这个问题&#xff1f; 3.你期待的理想结果是什么&#xff1f; 4.这个问题包括哪些子问题&#xff1f; 5.你曾经尝试过哪些解决方式&#xff1f;其他人呢&#xff1f; 6.这个…

(机器学习-深度学习快速入门)第二章数据分析基本工具正则表达式

文章目录一&#xff1a;说明二&#xff1a;正则表达式学习建议三&#xff1a;Python正则表达式简要说明&#xff08;1&#xff09;基本匹配&#xff08;2&#xff09;元字符①&#xff1a;.号②&#xff1a;字符集③&#xff1a;重复次数④&#xff1a;{}号⑤&#xff1a;(...)…

Spring(二)- 工厂高级

八&#xff1a;控制Spring工厂创建对象的次数 为什么要控制对象创建的次数 &#xff1f; 好处&#xff1a;节省不必要的内存浪费 &#xff01; 九&#xff1a;对象的生命周期 1.什么是对象的生命周期 指的是一个对象创建&#xff0c;存活&#xff0c;消亡的一个完整过程 2.…

基于朴素贝叶斯算法对肿瘤类别分类

目录 朴素贝叶斯算法​编辑 朴素贝叶斯的三种方式 实战——肿瘤类别的分类 朴素贝叶斯算法 贝叶斯定理 贝叶斯定理&#xff08;Bayes Theorem&#xff09;也称贝叶斯公式&#xff0c;是关于随机 事件的条件概率的定理 定理内容&#xff1a; 如果随机事件A1 ,A2 ,...,An构成…