C语言-第十七周课堂总结-数组

找出矩阵中最大值所在的位置

  • 程序解析-求矩阵的最大值

在这里插入图片描述

  1. 源程序段
    在这里插入图片描述

二维数组

多维数组的空间想象

  1. 一维数组:一列长表或一个向量
  2. 二维数组:一个表格或一个平面矩阵
  3. 三维数组:三位空间的一个方阵
  4. 多维数组:多维空间的一个数据矩阵
    在这里插入图片描述

二维数组的定义和引用

  1. 定义
    类型名 数组名[行长度][列长度]
    int a[3][2];
    定义一个二维数组a,3行2列,6个元素
    int b[5][10];
    定义一个二维数组b,5行10列,50个元素

引用

先定义,后使用
数组元素的引用:
数组名[行下标][列下标]
行下标和列下标:整形表达式
行下标的取值范围是[0,行长度 - 1]
列下标的取值范围是[0,列长度 - 1]
在这里插入图片描述
int a[3][2]; 3行2列,6个元素
a[0][0] a[0][1]
a[1][0] a[1][1]
a[2][0] a[2][1]
在这里插入图片描述

二维数组在内存中的存放方式

int a[3][2];
3行2列,6个元素
表示1个3行2列的矩阵(数表)
a[0][0] a[0][1]
a[1][0] a[1][1]
a[2][0] a[2][1]
在这里插入图片描述

二维数组的初始化

  1. 分行赋初值
    int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    int b[4][3] = {{1, 2, 3}, {}, {4, 5}};
    在这里插入图片描述
  2. 顺序赋初值
    int a[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
  3. 省略行长度
    对全部元素都赋了初值
    int a[][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9}
    或分行赋初值,在初值表中列出了全部行
    int b[][3] = {1, 2, 3}, {}, {4, 5}, {}}
    在这里插入图片描述

使用二维数组编程

  • 行下标和列下标分别作为循环变量,通过二重循环,遍历二维数组
  • 通常将行下标i作为外循环的循环变量
    在这里插入图片描述

生成一个矩阵(数表)并输出

  • 矩阵(数表)的运算通常使用二维数组实现
    输入两个正整数m和n(1<= m, n <= 3),生成一个并输出一个m*n的矩阵(数表),其元素的值由下式给出:
    a[i][j] = i + j (0 <= i <= m - 1, 0 <= j <= n - 1)
    在这里插入图片描述
  • 源程序
    在这里插入图片描述
  • 矩阵(数表)的输入
    在这里插入图片描述
  • 矩阵(数表)与二维数组
    在这里插入图片描述

方阵(方形数表)转置

在这里插入图片描述

源程序段

在这里插入图片描述

计算天数

在这里插入图片描述

  • 函数
    在这里插入图片描述

判断回文

在这里插入图片描述

  • 程序解析
    在这里插入图片描述

一维字符数组

  • 字符串的存储和运算可以用一维数组实现;
  • 一维字符数组的定义、引用、初始化与其他类型的一维数组一样;
    char str[80];
    定义一个含有80个字符型元素的数组str.
    char t[5] = {‘H’, ‘a’, ‘p’, ‘p’, ‘y’};
    在这里插入图片描述
    在这里插入图片描述

字符串

字符串常量

用一对双括号括起来的字符序列
一个字符串结束符’\n’
在这里插入图片描述

字符串与一维字符数组

  • 字符串:一个特殊的一维字符数组
    • 把字符串放入一维字符数组(存储)
    • 对字符串的操作—>对字符数组的操作

字符串的存储–数组初始化

  • 字符串可以存放在一维字符数组中

    char s[6] = {‘H’, ‘a’, ‘p’, ‘p’, ‘y’, ‘\0’};
    字符数组的初始化:用字符串常量
    char s[6] = {“Happy”};
    char s[6] = “Happy”;

  • 数组长度>= 字符串的有效长度 + 1
    char t[5]; "Happy"能存入t吗?
    在这里插入图片描述

字符串的存储

char s[80] = “Happy”;
在这里插入图片描述

  • 字符遇‘\0’结束;
  • 第一个’\0’前面的所有字符和’\0’一起构成了字符串“Happy";
  • '\0’之后的其他数组元素与该字符串无关
    在这里插入图片描述

对字符串的操作

  • 把字符串放入一维字符数组(存储)
  • 对字符串的操作---->对字符数组的操作
    • 普通字符数组:数组元素的个数是确定的,一般用下标控制循环;
    • 字符串:没有显示地给出有效字符的个数,只规定在字符串结束符’\0’之前的字符都是字符串的有效字符,一般用结束符’\0’来控制循环;
      循环条件:s[i] != ‘\0’

输出字符串

在这里插入图片描述

字符串的存储—赋值和输入

  • 把字符串放入一维字符数组(存储)

  • 对字符串的操作—>对字符数组的操作

    存储

    • 数组初始化
      char s[6] = “a”;
    • 赋值
      s[0] = ‘a’; s[1] = ‘\0’;
    • 输入
      ‘\0’代表空操作,无法输入
      输入时,设定一个输入结束符
      将输入结束符转换为字符串结束符’\0’

使用字符串编程

  • C语言将字符串作为一个特殊的一维字符数组来处理
    • 存储:把字符串放入一维字符数组
      • 数组初始化、赋值、输入
  • 对字符串的操作—>对字符数组的操作
    • 对一维字符数组的操作:针对字符串的有效字符和字符串结束符
      • 检测字符串结束符’\0’

统计数字字符个数

在这里插入图片描述

  • 源程序段
    在这里插入图片描述

凯撒密码

在这里插入图片描述

  • 源程序段
    在这里插入图片描述

字符转换

在这里插入图片描述

  • “123”—>123
    在这里插入图片描述
  • 源程序段
    在这里插入图片描述
  • 思考
    在这里插入图片描述

进制转换

在这里插入图片描述

  • 分析
    在这里插入图片描述
  • 生成十六进制字符串
    在这里插入图片描述
  • 转换为十进制整数
    在这里插入图片描述
  • 程序段
    在这里插入图片描述

字符串小结

字符串:一个特殊的一维字符数组’\0’

  • 把字符串放入一维字符数组(存储)
    数组长度足够

    • 字符数组初始化:char s[80] = “Happy”;
    • 赋值:s[0] = ‘a’; s[1] = ‘\0’;
    • 输入:输入结束符—>字符串结束符’\0’
      在这里插入图片描述
  • 对字符串的操作—>对字符数组的操作
    只针对字符串的有效字符和字符串结束符’\0’
    在这里插入图片描述

本章总结

  • 一维数组:
    • 定义、初始化、引用
    • 使用一维数组:选择排序、二分查找
  • 二维数组
    • 定义、初始化、引用
    • 使用二维数组:矩阵(数表)
  • 字符串
    • 字符数组与字符串
    • 字符串的存储
    • 字符串的操作
  • 使用数组进行程序设计
    在这里插入图片描述

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

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

相关文章

docker学习笔记02-安装mysql

1.安装mysql8 下载MySQL镜像 docker pull mysql:8.0创建并启动容器 docker run -itd --name mysqltest -p 9999:3306 -e MYSQL_ROOT_PASSWORD123456 mysql其中-it是交互界面 -d是后台执行 -name 指定容器名称 -p指定映射端口 -e设置环境变量 最后mysql是镜像名或者用镜像id如…

基于JAVA的木马文件检测系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 木马分类模块2.3 木马软件模块2.4 安全资讯模块2.5 脆弱点模块2.6 软件检测模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 木马分类表3.2.2 木马软件表3.2.3 资讯表3.2.4 脆弱点表3.2.5 软件检测表…

IPv4归属地信息查询方法与应用

IPv4地址归属地信息查询是网络管理和安全领域的关键工具。本文将介绍IPv4地址的概念&#xff0c;探讨IPv4归属地信息的重要性&#xff0c;并详细介绍几种查询IPv4归属地信息的方法以及其应用场景。 第一部分&#xff1a;IPv4地址简介 1.1 什么是IPv4地址 IPv4&#xff08;In…

vtk渲染管线Chap02.4

书章节2.4管线 VTK两个重要概念&#xff0c;一个是数据的可视化表达&#xff0c;一个是可视化管线。 2.4_vtkPipelineDemo.cpp如下 //VTK INIT With Opengl2 #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL2) VTK_MODULE_INIT(vtkInteractionStyle)#in…

前端文件在虚拟机,后端在本机,两个如何通信

前端文件在虚拟机&#xff0c;后端在本机&#xff0c;两个如何通信 如果前端的文件放在虚拟机里面&#xff0c;但是调用接口的后端在本地调试&#xff0c;如何做到在虚拟机中也能访问到本地的接口内容。 其实这个问题很简单&#xff0c;只要讲本地的IP和虚拟机中的IP结合就可…

【Web开发】深度剖析RBAC:概念、实现方法、优势及在Web应用中的应用

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; Web开发 ⛳️ 功不唐捐&#xff0c;玉汝于成 前言 在现代Web开发的激烈竞争中&#xff0c;实现可扩展性、安全性和用户体验的平衡成为了至关重要的挑战。在这一背景下&#xff0c;Role-Bas…

模型量化 | Pytorch的模型量化基础

官方网站&#xff1a;Quantization — PyTorch 2.1 documentation Practical Quantization in PyTorch | PyTorch 量化简介 量化是指执行计算和存储的技术 位宽低于浮点精度的张量。量化模型 在张量上执行部分或全部操作&#xff0c;精度降低&#xff0c;而不是 全精度&#xf…

在Vue2中快速使用ECharts

在Vue2中快速使用ECharts ECharts这里简单介绍一下ECharts的图表其他图表 背景: 因为博主在做项目时&#xff0c;有一个需求要求是可视化渲染出文章的分类信息以及文章内容&#xff0c;当时第一时间就想到了ECharts&#xff0c;因此就引入了在Vue2中快速使用ECharts。 ECharts …

行人重识别数据集-统一为market1501数据集进行多数据集联合训练

一、前言 常用的数据集&#xff1a; 数据集下载链接&#xff1a;https://kaiyangzhou.github.io/deep-person-reid/datasets.html https://kaiyangzhou.github.io/deep-person-reid/datasets.html#sensereid-sensereid 二、数据集合并 第一步&#xff1a;market1501的数据集…

数据分析工具 Top 8

你能想象一个没有工具箱的水管工吗? 没有,对吧? 数据从业者也是如此。如果没有他们的数据分析工具&#xff0c;数据从业者就无法分析数据、可视化数据、从数据中提取价值&#xff0c;也无法做数据从业者在日常工作中做的许多很酷的事情。 根据你最感兴趣的数据科学职业——数…

【架构】企业信息安全体系架构详解

企业信息安全体系架构来说,是包含技术、运维、管理3个层面。本文说的安全架构,主要集中讨论偏研发技术层面的安全架构。 安全性是软件研发技术体系,系统架构设计阶段的一个关键DFX能力,与可靠性、可服务性、性能等架构属性并列。由于安全性设计自身的特点,涉及到系统架构…

highcharts的甘特图设置滚动时表头固定,让其他内容跟随滚动

效果图&#xff1a;最左侧的分类列是跟随甘特图滚动的&#xff0c;因为这一列如果需要自定义&#xff0c;比如表格的话可能会存在行合并的情况&#xff0c;这个时候甘特图是没有办法做的&#xff0c;然后甘特图的表头又需要做滚动时固定&#xff0c;所以设置了甘特图滚动时&…

3dsmax渲染太慢,用云渲染农场多少钱?

对于许多从事计算机图形设计的创作者来说&#xff0c;渲染速度慢是一个常见问题&#xff0c;尤其是对于那些追求极致出图效果的室内设计师和建筑可视化师&#xff0c;他们通常使用3ds Max这样的工具&#xff0c;而高质量的渲染经常意味着长时间的等待。场景复杂、细节丰富&…

15-网络安全框架及模型-BLP机密性模型

目录 BLP机密性模型 1 背景概述 2 模型原理 3 主要特性 4 优势和局限性 5 困难和挑战 6 应用场景 7 应用案例 BLP机密性模型 1 背景概述 BLP模型&#xff0c;全称为Bell-LaPadula模型&#xff0c;是在1973年由D.Bell和J.LaPadula在《Mathematical foundations and mod…

ApiPost插件⭐️与IDEA的搭配使用,通过引入插件直接在项目里一键开测

小伙伴们大家好&#xff0c;用接口测试工具有一段时间了&#xff0c;最近发现该工具有提供插件直接可以在项目里测试接口&#xff0c;并且页面布局不输应用 目录 一、ApiPost插件介绍 二、安装插件 一、ApiPost插件介绍 Apipost 是一个用于测试和调试 API 接口的 IDEA 插件…

MariaDB单机多实例的配置方法

1、什么是数据库的单机多实例 数据库的单机多实例是指在一台物理服务器上运行多个数据库实例。这种部署方式允许多个数据库实例共享相同的物理资源&#xff0c;如CPU、内存和存储&#xff0c;从而提高硬件利用率并降低成本。每个数据库实例可以独立运行&#xff0c;处理不同的…

cpp_07_类型转换构造_析构函数_深拷贝_静态成员

1 类型转换构造函数 1.1 why? 基本类型之间的转换&#xff0c;编译器内置转换规则&#xff1a;int -> double 类类型之间的转换&#xff0c;编译器不知道转换规则&#xff0c;需要用户提供&#xff1a;Cat -> Dog // consconv_why.cpp 为什么需要自定义转换 #includ…

【机器学习】西瓜书第6章支持向量机课后习题6.1参考答案

【机器学习】西瓜书学习心得及课后习题参考答案—第6章支持向量机 1.试证明样本空间中任意点x到超平面(w,b)的距离为式(6.2)。 首先&#xff0c;直观解释二维空间内点到直线的距离&#xff1a; 由平面向量的有关知识&#xff0c;可得&#xff1a; 超平面的法向量为 w w w&am…

「Kafka」入门篇

「Kafka」入门篇 基础架构 Kafka 快速入门 集群规划 集群部署 官方下载地址&#xff1a;http://kafka.apache.org/downloads.html 解压安装包&#xff1a; [atguiguhadoop102 software]$ tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/module/修改解压后的文件名称&#xff1a; [a…

排列组合算法(升级版)

前言 在上一期博客中我们分享了一般的排列组合算法&#xff08;没看的话点这里哦~&#xff09;&#xff0c;但是缺点很明显&#xff0c;没法进行取模运算&#xff0c;而且计算的范围十分有限&#xff0c;而今天分享的排列组合升级版算法能够轻松解决这些问题&#xff0c;话不多…