2023-04-22 学习记录--C/C++-数组

news2024/11/21 0:17:33

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻

一、定义一维数组 ⭐️

(一)、初识

格式 🌈:数组元素类型 数组名[数组元素个数];
example1:🎈

  • 需求 🍉:定义一个包含4整数的数组a
  • 代码 🍉:int a[4];
  • 收获 🍉:
    • 1、数组的下标从0开始,所以通过a[0]a[1]a[2]a[3]来访问数组中的每个整数;
    • 2、赋值和计算
      a[0]=10; // 将10赋值给数组的第一个元素
      a[1]=20; // 将20赋值给数组的第二个元素
      int sum = a[0]+a[1]; // 计算数组中前两个元素的和

example2:🎈

  • 需求 🍉:定义一个含2、4、6、8、10这五位数的数组arr
  • 代码 🍉:int arr[5]={2,4,6,8,10};
  • 注意 🍉:
    • 1、各数组元素需用大括号包裹;
    • 2、各数组元素之间用逗号隔开。

(二)、举例

在这里插入图片描述

需求 🎀:对10个数组元素依次赋值为0、1、2、3、4、5、6、7、8、9,并按倒序输出。

/**
 * 需求:对10个数组元素依次赋值为0、1、2、3、4、5、6、7、8、9,并按倒序输出。
 */

#include <stdio.h>
int main()
{
    /** 定义一个一维数组arr */
    int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    /** for语句 */
    for (int i = 9; i >= 0; i--)
        printf("%d\t", arr[i]); // for语句里只有一行代码时,其大括号可以省略
    printf("\n");               // 最后一个输出语句,一定要记得加上换行符(\n)
    /** 程序正常运行结束 */
    return 0;
}

在这里插入图片描述

二、定义二维数组 ⭐️

(一)、初识

格式 🌈:数组元素类型 数组名[数组行数][数组列数];
写法 ✍🏻:比如定义一个含 2行3列 整数的数组a

  • 写法一【更推荐】、int a[2][3]={{1,2,3},{4,5,6}};
  • 写法二、
    • int a[2][3];
      a[0][0]=1;
      a[0][1]=2;
      a[0][2]=3;
      a[1][0]=4;
      a[1][1]=5;
      a[1][2]=6;
  • 写法三、int a[2][3]={1,2,3,4,5,6};
  • 结果:👇🏻
    • 1 2 3
      4 5 6

(二)、举例

在这里插入图片描述

example1 🎈

在这里插入图片描述

#include <stdio.h>
int main()
{
    /** 使用变量/常量前必须先定义 */
    int a[2][3] = {{1, 2, 3}, {4, 5, 6}}; // 定义一个2行3列的二维数组a
    int b[3][2], i, j;                    // 定义一个3行2列的二维数组b
    /** for语句 */
    for (i = 0; i < 2; i++)     // 因为数组a的行数是2,所以第一层循环2次
        for (j = 0; j < 3; j++) // 因为数组a的列数是3,所以第二层循环3次
            b[j][i] = a[i][j];  // 将a[i][j]的值赋值给b[j][i]
    /** 输出结果 */
    printf("数组b为:\n");
    for (j = 0; j < 3; j++) // 因为数组b的行数是3,所以第一层循环3次
    {
        for (i = 0; i < 2; i++)      // 因为数组b的列数是2,所以第二层循环2次
            printf("%d\t", b[j][i]); // for语句里只有一行代码时,其大括号可以省略
        printf("\n");                // 每一行内容后加个换行符(\n)
    }
    /** 程序正常运行结束 */
    return 0;
}

在这里插入图片描述

example2 🎈

在这里插入图片描述

#include <stdio.h>
int main()
{
    /** 使用变量/常量前必须先定义 */
    int a[3][3] = {{1, 2, 3}, {9,8,7}, {-10,10,-5}}; // 定义一个3行3列的二维数组a
    int i,j,max;
    /** 赋值 */
    max = a[0][0]; // 将数组a的第一个元素赋值给max的初始值
    /** for语句 */
    for (i = 0; i < 3; i++)     // 因为数组a的行数是3,所以第一层循环3次
        for (j = 0; j < 3; j++) // 因为数组a的列数是3,所以第二层循环3次
           if(a[i][j]>max)
           max=a[i][j];
    /** 输出结果 */
    printf("最大元素的值为:%d\n",max); // 最后一个输出语句,一定要记得加上换行符(\n)
    /** 程序正常运行结束 */
    return 0;
}

在这里插入图片描述

三、定义字符数组 ⭐️

1、定义格式同前面,只是里面的数组元素是字符
2、比如:【注意:字符用单引号

  • 一维字符数组char c[3] = ['H',' ','i']; // H i
  • 二维字符数组char c[3][3]={{'A',' ','B'},{'C',' ','D'},{'E',' ','F'}};
    • A B
      C D
      E F

四、输出字符数组 ⭐️

方法一、挨个输出【不推荐】🙅🏻‍♀️

格式 🌈:printf("%c",字符);
缺点 💥:比较墨迹,需要搭配一个或多个for语句,所以不推荐。

example:🎈

需求:定义一个字符串"spare no pains",然后输出这个字符串。

/**
 * 需求:定义一个字符串"spare no pains",然后输出这个字符串。
 */

#include <stdio.h>
int main()
{
    /** 使用变量/常量前必须先定义 */
    char c[14] = {'s', 'p', 'a', 'r', 'e', ' ', 'n', 'o', ' ', 'p', 'a', 'i', 'n', 's'};
    int i;
    /** for语句 */
    for (i = 0; i < 14; i++)
        printf("%c", c[i]);
    printf("\n"); // 最后一个输出语句,一定要记得加上换行符(\n)
    /** 程序正常运行结束 */
    return 0;
}

在这里插入图片描述

方法二、整体输出【推荐】

格式 🌈:printf("%s",数组名);puts(数组名);

example:🎈

需求:定义一个字符串"spare no pains",然后输出这个字符串。

/**
 * 定义一个字符串"spare no pains",然后输出这个字符串。
 */

#include <stdio.h>
int main()
{
    /** 使用变量/常量前必须先定义 */
    char c[14] = {'s', 'p', 'a', 'r', 'e', ' ', 'n', 'o', ' ', 'p', 'a', 'i', 'n', 's'};
    
    /** 方法二、整体输出 */
    printf("%s\n",c);
    // 或者
    puts(c);

    /** 程序正常运行结束 */
    return 0;
}

在这里插入图片描述

补充 👁

1、printf里,%c是输出字符串里的某一个字符s%是输出整个字符串
2、无论方法一还是方法二,遇到字符'\0',该字符及其后面的内容都不会被输出来,比如:👇🏻
在这里插入图片描述
3、好习惯:定义字符数组时,最好在原字符上多加一位字符'\0',目的是避免大项目中重复定义数组后未发现(虽然代码里若定义了同数组名,会有错误提示)。

五、输入字符数组 ⭐️

方法一、挨个单词输入【不推荐】🙅🏻‍♀️

格式 🌈:scanf("%s%s...",数组名1,数组名2,...);
知识点 📚:scanf里,当输入的是字符串时,其前不用加&符号。

方法二、整句输入【推荐】

格式 🌈:gets(数组名);

example:🎈

需求:输入一行由空格和单词组成的字符(字符数在80以内),请统计有多少单词。

/**
 * 需求:输入一行由空格和单词组成的字符(字符数在80以内),请统计有多少单词。
 */

#include <stdio.h>
int main()
{
    /** 使用变量/常量前必须先定义 */
    char c[81]; // 定义一个长度为81的字符型数组(因为最后最好加一个'\0')
    int i, num = 1;
    /** 引导用户输入 */
    printf("请输入一行由空格和单词组成的字符(字符数在80以内):\n");
    gets(c); // 数组c通过用户输入得到
    /** 逻辑处理 */
    if (c[0] == ' ')
        num = 0; // 第一位为空格,单词数为0
    for (i = 0; c[i] != '\0'; i++)
        if (c[i] == ' ' && c[i + 1] != ' ' && c[i + 1] != '\0')
            num++; // 单词数加1
    /** 输出结果 */
    printf("有%d个单词\n", num);
    /** 程序正常运行结束 */
    return 0;
}

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java每日一练(20230423)

目录 1. 数组元素统计 ※ 2. 杨辉三角 II &#x1f31f; 3. 二进制求和 &#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 数组元素统计 定义一个长度为5的数组arr1&a…

【三十天精通Vue 3】第十六天 Vue 3 的虚拟 DOM 原理详解

引言 Vue 3 的虚拟 DOM 是一种用于优化 Vue 应用程序性能的技术。它通过将组件实例转换为虚拟 DOM&#xff0c;并在组件更新时递归地更新虚拟 DOM&#xff0c;以达到高效的渲染性能。在 Vue 3 中&#xff0c;虚拟 DOM 树由 VNode 组成&#xff0c;VNode 是虚拟 DOM 的基本单元…

PTA L1-096 谁管谁叫爹 (20 分)

《咱俩谁管谁叫爹》是网上一首搞笑饶舌歌曲&#xff0c;来源于东北酒桌上的助兴游戏。现在我们把这个游戏的难度拔高一点&#xff0c;多耗一些智商。 不妨设游戏中的两个人为 A 和 B。游戏开始后&#xff0c;两人同时报出两个整数 N A N_A NA​​ 和 N B ​ N_B​ NB​​ 。判…

C语言函数大全-- n 开头的函数

C语言函数大全 本篇介绍C语言函数大全-- n 开头的函数 1. nan 1.1 函数说明 函数声明函数功能double nan(const char *tagp);用于返回一个表示 NaN&#xff08;非数值&#xff09;的 double 类型数字 参数&#xff1a; tagp &#xff1a; 指向字符串的指针&#xff1b;用于…

Tomcat 配置与部署

http 协议就是 http 客户端和 http 服务器之间通信的协议 , 而Tomcat 就是 java 圈子中最广泛使用的 http 服务器. 下载Tomcat Tomcat官网 Tomcat 的版本 , 和后续的 servlet 版本是强相关的 , 此处使用 tomcat 8 , 对应的 servlet 就是 3.1 下载一个 zip 压缩包解压缩即可 T…

探索【Stable-Diffusion WEBUI】的插件:骨骼姿态(OpenPose)

文章目录 &#xff08;零&#xff09;前言&#xff08;一&#xff09;骨骼姿态&#xff08;OpenPose&#xff09;系列插件&#xff08;二&#xff09;插件&#xff1a;PoseX&#xff08;三&#xff09;插件&#xff1a;Depth Lib&#xff08;四&#xff09;插件&#xff1a;3D …

Spring之IOC和DI入门案例

IOC和DI入门案例 1. IOC入门案例1.1 门案例思路分析1.2 实现步骤1.3 实现代码1.4 运行结果 2. DI入门案例2.1 DI入门案例思路分析2.2 实现步骤2.3 实现代码2.4 图解演示 1. IOC入门案例 问题导入 <bean>标签中id属性和class属性的作用是什么&#xff1f; 1.1 门案例思…

金三银四总计面试碰壁15次,作为一个27岁的测试工程师.....

3年测试经验原来什么都不是&#xff0c;只是给你的简历上画了一笔&#xff0c;一直觉得经验多&#xff0c;无论在哪都能找到满意的工作&#xff0c;但是现实却是给我打了一个大巴掌&#xff01;事后也不会给糖的那种... 先说一下自己的个人情况&#xff0c;普通二本计算机专业…

023:Mapbox GL加载mp4视频文件

第023个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载MP4视频文件。一个视频源。 “urls”值是一个数组。 对于数组中的每个 URL,将创建一个视频元素源。 要支持跨浏览器的视频,请提供多种格式的 URL。“坐标”数组包含按顺时针顺序列出的视频角的 [longi…

【MYSQL】数据库和表的基本操作

目录 1.mysql的工作图&#xff1a; 2.连接mysql服务器 3.mysql的配置文件 4.数据库的操作 5.表的操作 1.mysql的工作图&#xff1a; mysql是一个应用层服务&#xff0c;需要使用安装的mysql客户端&#xff08;也叫mysql&#xff09;连接mysql服务器&#xff08;也叫mysq…

Sa-Token源码简单阅读

一.权限登录模块包括几个基本子模块&#xff1a; 1.登录。 实现方式大致为&#xff1a;先检验用户名密码是否正确&#xff0c;如正确则在缓存中存入用户信息&#xff08;一般必须要有用户标识和访问token&#xff0c;或再加一些附加信息如用户的角色权限&#xff09;&#xf…

国内外4款主流ERP系统评测,哪款最好用?

一、ERP系统的概念 ERP系统&#xff0c;是针对通用各个企业特点研发的ERP软件。由于行业产品结构复杂&#xff0c;导致原料种类众多&#xff0c;制造工艺复杂&#xff0c;外加客户、供应商、物流等不确定因素&#xff0c;传统手工、表格、纸质作业模式难以应对复杂状况&#x…

设计模式之责任链模式(C++)

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 一、责任链模式是什么&#xff1f; 责任链模式是一种行为型的软件设计模式&#xff0c;对象内存在对下家的引用&#xff0c;层层连…

【世界读书日】2023年通信好书推荐

今天是世界读书日&#xff08;4月23日&#xff09;。按照老规矩&#xff0c;小编给大家推荐一些通信类的优秀书籍。 过去一年&#xff0c;通信行业的关注热点&#xff0c;主要是&#xff1a;5G-Advanced&#xff08;5.5G&#xff09;、算力网络、东数西算、6G、卫星互联网、智…

历史上的今天大事件查询工具推荐 - 历史上的今天 API

引言 历史上的今天&#xff0c;总会有一些特别的事件发生&#xff0c;这些事件对人类的发展产生了深远的影响。想要了解这些事件&#xff0c;往往需要花费大量的时间和精力去查阅历史资料。但现在&#xff0c;有了历史上的今天 API&#xff0c;一切变得方便了许多。 如果你对…

交友项目【根据id查询单条动态发布评论查询评论列表】

目录 1&#xff1a;根据id查询单条动态 1.1&#xff1a;接口分析 1.2&#xff1a;流程分析 1.3&#xff1a;代码实现 2&#xff1a;发布评论 2.1&#xff1a;接口分析 2.2&#xff1a;流程分析 2.3&#xff1a;代码实现 3&#xff1a;查询评论列表 3.1&#xff1a;接…

Python导出含有中文名文件解决方案

使用Python开发过程中有用到需要导出文件的功能 异常代码 # 代码片段 def return_workbook(self, workbook, model_code, x_io):name “税单.xls”workbook.close()res HttpResponse()res["Content-Type"] "application/octet-stream"res["Conte…

Python 基础(九):列表

❤️ 博客主页&#xff1a;水滴技术 &#x1f338; 订阅专栏&#xff1a;Python 入门核心技术 &#x1f680; 支持水滴&#xff1a;点赞&#x1f44d; 收藏⭐ 留言&#x1f4ac; 文章目录 一、声明列表二、访问列表元素三、修改列表元素四、添加列表元素4.1、在列表末尾添加元…

京东商品列表数据采集(APP,H5端)

采集场景: 在京东搜索页 https://search.jd.com/Search 输入搜索&#xff0c;搜出后得到的多个商品列表数据。 征地: 商品名称、价格、评论数、店铺名称、店铺链接等字段。 采集结果: 采集结果可导出为Excel&#xff0c;CSV&#xff0c;HTML&#xff0c;数据库等格式。导出…

学习系统编程No.22【消息队列和信号量】

引言&#xff1a; 北京时间&#xff1a;2023/4/20/7:48&#xff0c;闹钟6点和6点30&#xff0c;全部错过&#xff0c;根本起不来&#xff0c;可能是因为感冒还没好&#xff0c;睡不够吧&#xff01;并且今天是星期四&#xff0c;这个星期这是第二篇博客&#xff0c;作为一个日…