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’
    在这里插入图片描述

本章总结

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

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

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

相关文章

如何在本地部署现有气象大模型

今年涌现了诸如Pangu、Fuxi、Fengwu、GraphCast、FourCastNet等诸多气象大模型&#xff0c;本文介绍如何用EC开发的ai-models在本地部署以上模型。 本文测试环境系统为&#xff1a; Ubuntu 18.04.6 LTS Anaconda 3 Cuda 11.8 libcudnn 8 1、创建并启动虚拟环境 conda cr…

修改orbslam2代码,加载二进制词典文件,加速词典加载速度

修改orbslam2代码&#xff0c;加载二进制词典文件&#xff0c;加速词典加载速度 0.在ORB_SLAM2下创建tools文件夹&#xff0c;放入bin_vocabulary.cc程序 #include <time.h>#include "ORBVocabulary.h" using namespace std;bool load_as_text(ORB_SLAM2::OR…

手动创建idea SpringBoot 项目

步骤一&#xff1a; 步骤二&#xff1a; 选择Spring initializer -> Project SDK 选择自己的JDK版本 ->Next 步骤三&#xff1a; Maven POM ->Next 步骤四&#xff1a; 根据JDK版本选择Spring Boot版本 11版本及以上JDK建议选用3.2版本&#xff0c;JDK为11版本…

算法模板之单调栈和单调队列图文详解

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;算法模板、数据结构 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. ⛳️单调栈讲解1.1 &#x1f514;单调栈的定义1.2 &#x1f514;如何维护一个单…

JS + CSS 实现高亮关键词(不侵入DOM)

之前在做关键词检索高亮功能的时候&#xff0c;研究了下目前前端实现高亮的几种方式&#xff0c;第一就是替换dom元素实现高亮&#xff0c;第二就是利用浏览器新特性Css.highlights结合js选区与光标与CSS高亮伪类实现&#xff0c;实现功能如下&#xff1a; 一、页面布局 一个…

海德堡UV灯电源维修eta Plus Elc PE22-400-210

uv灯电源维修故障包括&#xff1a; 1、电压不稳&#xff1a;检查uv打印机的电压&#xff0c;设置一个稳压箱即可。 2、温度过高&#xff1a;uv打印机温度过高也会影响uv灯&#xff0c;可以更换为水冷式循环降温。 3、水箱里的信号线接触不好&#xff1a;将两边的信号线对调&…

Python爬虫|使用Selenium轻松爬取网页数据

1. 什么是selenium&#xff1f; Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作浏览器一样。支持的浏览器包括IE&#xff0c;Firefox&#xff0c;Safari&#xff0c;Chrome等。 Selenium可以驱动浏览器自动执…

SpringBoot+ShardingSphereJDBC实战(读写分离,分库分表,垂直拆分、水平拆分)附源码

参考&#xff1a;https://www.51cto.com/article/747736.html https://blog.csdn.net/qq_41581588/article/details/126966665 源码地址&#xff1a;gitgitee.com:jackXUYY/springboot-example.git 读写分离测试 我们启用后缀名为dev的配置文件&#xff0c;如下&#xff0c;…

Visual Studio 2013 中创建一个基于 Qt 的动态链接库:并在MFC DLL程序中使用

在本地已经安装好 Qt 的情况下&#xff0c;按照以下步骤在 Visual Studio 2013 中创建一个基于 Qt 的动态链接库&#xff1a; 一、新建 Qt 项目&#xff1a; 在 Visual Studio 中&#xff0c;选择 “文件” -> “新建” -> “项目…”。在 “新建项目” 对话框中&#…

51和32单片机读取FSR薄膜压力传感器压力变化

文章目录 简介线性电压转换模块51单片机读取DO接线方式51代码实验效果 32单片机读取AO接线方式32代码实验效果 总结 简介 FSR薄膜压力传感器是可以将压力变化转换为电阻变化的一种传感器&#xff0c;单片机可以读取然后作为粗略测量压力&#xff08;仅提供压力变化&#xff0c;…

超时控制:Go语言下的网络请求与时间赛跑

开场白&#xff1a;在互联网的世界里&#xff0c;我们经常要与各种API打交道。有时&#xff0c;这些API可能会因为各种原因而变得“慢条斯理”&#xff0c;这时&#xff0c;超时控制就显得尤为重要了。今天&#xff0c;我们就来聊聊如何在Go语言中实现HTTP请求的超时控制&#…

【JavaScript】DOM事件的传播机制

✨ 专栏介绍 在现代Web开发中&#xff0c;JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性&#xff0c;还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言&#xff0c;JavaScript具有广泛的应用场景&#x…

企业如何正确的云迁移,云迁移过程中需要注意哪几个点?

如今的企业比以往任何时候都能访问更多的数据。这些数据正在以惊人的速度增长&#xff0c;无论是数量还是变化量。无论是传统的分析还是机器学习和人工智能等前沿技术&#xff0c;将这些信息从所有信息源集中到云存储库对业务至关重要。 为什么进行迁移&#xff1f; 企业将数…

【JavaScript】异步解决方案的发展历程

✨ 专栏介绍 在现代Web开发中&#xff0c;JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性&#xff0c;还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言&#xff0c;JavaScript具有广泛的应用场景&#x…

Flink1.17实战教程(第二篇:DataStream API)

系列文章目录 Flink1.17实战教程&#xff08;第一篇&#xff1a;概念、部署、架构&#xff09; Flink1.17实战教程&#xff08;第二篇&#xff1a;DataStream API&#xff09; Flink1.17实战教程&#xff08;第三篇&#xff1a;时间和窗口&#xff09; Flink1.17实战教程&…

mybatis快速批量插入工具类

代码示例&#xff1a; package com.ly.cloud.util; import java.util.List;import javax.annotation.PostConstruct; import javax.annotation.Resource;import com.google.common.collect.Lists; import org.apache.ibatis.session.ExecutorType; import org.apache.ibatis.s…

C1189#error: WinSock.h has already been included解决方案

最近在做项目移植过程中遇到这个报错&#xff0c;解决了半天。简单记录下解决方案&#xff0c;以供给大家提供一个思路。 原因&#xff1a; 在工程中使用了Boot库之后&#xff0c;使用了socket、tcp相关的头文件&#xff0c;在其他地方还是包括了头文件<windows.h>&…

「Verilog学习笔记」超前进位加法器

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 超前进位加法器的实质是&#xff1a;对于输出的每一位Si 其实都可以用Si Ai ^ Bi ^ Cin来表示 我们需要做的只是判断加法结果的最高位该取几 例如本题中 输入的两个数A和B…

云手机:多开群控全天在线,提高效率的最佳之选

对于需要高效处理多项任务的用户&#xff0c;Ogphone云手机以其多开、群控和全天在线的强大功能&#xff0c;成为提升效率的理想选择。下文将详细介绍Ogphone云手机的这三种功能是如何提高效率的。 多开分身&#xff1a;高效工作利器 Ogphone云手机采用基于ARM架构服务器的运行…

如何用电源模块综合测试系统测试逆变器电源输出电压?

万用表测量逆变器电源输出电压的方法 1.调整万用表到直流电压测量模式 2.确定测量电压的量程&#xff0c;选择合适挡位&#xff0c;一般建议选择稍大于逆变器额定电压的量程。 3.连接万用表“COM”插头到测量线的负极(通常为黑色插孔)&#xff0c;连接红色插头到测量线的正极(通…