数组(个人学习笔记黑马学习)

一维数组

1、定义方式

#include <iostream>
using namespace std;int main() {//三种定义方式//1.int arr[5];arr[0] = 10;arr[1] = 20;arr[2] = 30;arr[3] = 40;arr[4] = 50;//访问数据元素/*cout << arr[0] << endl;cout << arr[1] << endl;cout << arr[2] << endl;cout << arr[3] << endl;cout << arr[4] << endl;*///2.int arr2[5] = { 10,20,30,40,50 };/*cout << arr2[0] << endl;cout << arr2[1] << endl;cout << arr2[2] << endl;cout << arr2[3] << endl;cout << arr2[4] << endl;*///利用循环的方式输出数组/*for (int i = 0; i < 5; i++){cout << arr[i] << endl;}*///3.int arr3[] = { 90,80,70,60,50,40,30,20,10 };for (int i = 0; i < 9; i++){cout << arr3[i] << endl;}system("pause");return 0;
}

 


2、数组名

#include <iostream>
using namespace std;int main() {//1、通过数组名统计整个数组占用内存大小int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };cout << "整个数组占用内存空间为:" << sizeof(arr) << endl;cout << "每个数组占用内存空间为:" << sizeof(arr[0]) << endl;cout << "数组中元素个数为:" << sizeof(arr) / sizeof(arr[0]) << endl;//2、可以通过数组名查看数组首地址cout << "数组首地址为:" << arr << endl;cout << "数组中第一个元素地址为:" << &arr[0] << endl;system("pause");return 0;
}

3、练习案例1: 五只小猪称体重


案例描述:
在一个数组中记录了五只小猪的体重
如: int arr[5] =(300,350,200,400,250):
找出并打印最重的小猪体重。

#include <iostream>
using namespace std;int main() {int arr[5] = { 300,350,200,400,250 };int max = arr[0];for (int i = 1; i < 5; i++){if (max < arr[i]) {max = arr[i];}}cout << "最重的小猪体重为:" << max << endl;system("pause");return 0;
}

 


4、练习案例2:数组元素逆置

案例描述: 请声明一个5个元素的数组,并且将元素逆置(如原数组元素为: 1,3,2,5,4;逆置后输出结果为:4,5,2,3,1

#include <iostream>
using namespace std;int main() {int arr[5] = { 1,3,2,5,4 };for (int i = 0; i < 5; i++){for (int j = 0; j <=i; j++){int t = 0;t = arr[i];arr[i] = arr[j];arr[j] = t;}}for (int i = 0; i < 5; i++){cout << arr[i];}system("pause");return 0;
}

 


5、冒泡排序


作用: 最常用的排序算法,对数组内元素进行排序
 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。

 2.对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值

 3.重复以上的步骤,每次比较次数-1,直到不需要比较

#include <iostream>
using namespace std;int main() {int arr[9] = {4,2,8,0,5,7,1,3,9};for (int i = 0; i < 9-1; i++){for (int j = 0; j <9 - i - 1; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}for (int i = 0; i < 9; i++){cout << arr[i]<<",";}cout << endl;system("pause");return 0;
}

 


二维数组 

1、定义方式

#include <iostream>
using namespace std;int main() {//1、int arr[2][3];//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;}*///3、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;}*///4、int arr4[][3] = { 1,2,3,4,5,6 };for (int i = 0; i < 2; i++){for (int j = 0; j < 3; j++) {cout << arr4[i][j] << " ";}cout << endl;}system("pause");return 0;
}

2、数组名

#include <iostream>
using namespace std;int main() {int arr[2][3] ={{1,2,3},{4,5,6} };cout << "二维数组占用内存空间为:" << sizeof(arr) << endl;cout << "二维数组第一行占用内存为:" << sizeof(arr[0]) << endl;cout << "二维数组第一个元素占用内存为:" << sizeof(arr[0][0]) << endl;cout << "二维数组行数为:" << sizeof(arr) / sizeof(arr[0]) << endl;cout << "二维数组列数为:" << sizeof(arr[0]) / sizeof(arr[0][0]) << endl;cout << "二维数组的首地址为:" << arr << endl;cout << "二维数组第一行的首地址为:" << arr[0] << endl;cout << "二维数组第二行的首地址为:" << arr[1] << endl;cout << "二维数组第一给元素的首地址为:" << &arr[0][0] << endl;system("pause");return 0;
}

 


3、 二维数组应用案例
考试成绩统计:
案例描述:有三名同学(张三,李四,王五),在一次考试中的成绩分别如下表,请分别输出三名同学的总成绩

              语文          数学      英语
张川       100           100       100
李四       90              50        100
王五       60              70         80

#include <iostream>
using namespace std;int main() {int scores[3][3] = { {100,100,100},{90,50,100},{60,70,80} };for (int i = 0; i < 3; i++){int sum = 0;for (int j = 0; j < 3; j++) {sum += scores[i][j];}cout << "第" << i + 1 << "个人的总分为:" << sum << endl;}system("pause");return 0;
}

 

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

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

相关文章

K8S如何部署Redis(单机、集群)

在今天的讨论中&#xff0c;我们将深入研究如何将Redis数据库迁移到云端&#xff0c;以便更好地利用云计算的优势提高数据管理的灵活性。 Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统&#xff0c;它可以用作数据库、缓存和消息代理。Redis支持多…

pinia——添加插件——基础积累

问题&#xff1a;是否给pinia添加过插件&#xff1f;具体添加的方式是什么&#xff1f; 在pinia中&#xff0c;我们可以为仓库添加插件&#xff0c;通过添加插件能够扩展以下的内容&#xff1a; 为 store 添加新的属性 定义 store 时增加新的选项 为 store 增加新的方法 包装现…

Sketch 98 中文版-mac矢量绘图设计

Sketch是一款专为Mac操作系统设计的矢量图形编辑软件&#xff0c;被广泛应用于UI/UX设计、网页设计、移动应用设计等领域。Sketch提供了各种工具和功能&#xff0c;包括绘图、图形设计、排版等&#xff0c;可以帮助设计师轻松地创建高质量的矢量图形和模型。Sketch的主要特点包…

防溺水智能预警系统解决方案 yolov7

防溺水智能预警系统解决方案采用yolov7先进的AI视觉识别算法模型框架&#xff0c;防溺水智能预警系统解决方案算法实现对危险水域人员活动、水面情况等各项指标的监测和分析。当发现有人进入危险水域或出现紧急情况时&#xff0c;算法会立即发出预警信号。Yolo算法采用一个单独…

数据结构初阶--排序

目录 一.排序的基本概念 1.1.什么是排序 1.2.排序算法的评价指标 1.3.排序的分类 二.插入排序 2.1.直接插入排序 2.2.希尔排序 三.选择排序 3.1.直接选择排序 3.2.堆排序 重建堆 建堆 排序 四.交换排序 4.1.冒泡排序 4.2.快速排序 快速排序的递归实现 法一&a…

Visual Studio 2022的MFC框架——AfxWinMain全局对象和InitInstance函数

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天我们来重新审视一下Visual Studio 2022下开发工具的MFC框架知识。 在看这篇帖子前&#xff0c;请先看我的另一篇帖子《Visual Studio 2022的MFC框架——应用程序向导》。 当程序调用了CWinApp类的构造…

Shell编程之运算符

目录 算数运算符 关系运算符 文件运算符 逻辑运算符 算数运算符 注意&#xff1a; 原生bash不支持简单的数学运算&#xff0c;但是可以通过其他命令来实现&#xff0c; 例如 expr 常用算数运算符 加-减*乘/除%取余 示例如下&#xff1a; A2 B3 expr $[$A$B] expr $[$A-$…

网工内推 | 技术支持工程师,最高40k,CCNP、CISP认证优先

01 卓望公司 招聘岗位&#xff1a;高级技术支持工程师 职责描述&#xff1a; 1、负责网络安全防护类产品技术支持工作&#xff0c;包括但不限于&#xff1a;抗DDoS&#xff0c;云WAF&#xff0c;漏洞扫描等。 2、负责网络安全防护类产品安装、配置、升级和系统加固等维护支撑工…

暴力递归转动态规划(二)

上一篇已经简单的介绍了暴力递归如何转动态规划&#xff0c;如果在暴力递归的过程中发现子过程中有重复解的情况&#xff0c;则证明这个暴力递归可以转化成动态规划。 这篇帖子会继续暴力递归转化动态规划的练习&#xff0c;这道题有点难度。 题目 给定一个整型数组arr[]&…

Git仓库简介

1、工作区、暂存区、仓库 工作区&#xff1a;电脑里能看到的目录。 暂存区&#xff1a;工作区有一个隐藏目录.git&#xff0c;是Git的版本库&#xff0c;Git的版本库里存了很多东西&#xff0c;其中最重要的就是称为stage&#xff08;或者叫index&#xff09;的暂存区&#xf…

leetcode 42. 接雨水

2023.8.29 本题可以用双指针做&#xff0c;求出每一列能盛的雨水&#xff0c;再相加即可。不过暴力法会超时&#xff0c;需要优化。 双指针&#xff08;暴力&#xff09;&#xff1a; class Solution { public:int trap(vector<int>& height) {int ans 0;for(int …

C++自创题目——第一期

一、题目描述&#xff1a; 在一段时间内&#xff0c;到达港口的船有n艘&#xff0c;其中每艘船的信息包括:到达时间t(表示第t秒)&#xff0c;船上乘客数k&#xff0c;以及k名乘客的国籍。输出前3600s内每艘船上国籍种数&#xff0c;并输出国籍种数最少的船只的到达时间。 二、…