C语言之数组精讲(1)

目录

数组

数组的声明(使用数组前的准备)

访问数组(数组的使用方法)

数组的遍历

数组初始化

1.在声明变量时,除了必要的情况下,都需要对变量进行初始化。

2.我们还可以像下面在声明数组时不指定元素个数,数组会根据初始值的个数自动进行设置。

3.使用0对{}内没有赋初始值的元素进行初始化。

4.使用0对初始化数组内的全部元素

在初始化数组时,也有错误的操作

数组的复制

输入数组元素的值

对数组的元素进行倒序排列

 使用数组进行成绩处理

对象式宏

数组元素的最大值和最小值

赋值表达式的判断

数组的元素个数

 结语


学生的学籍号码、运动选手背后的号码、飞机高铁的座位号……在生活中我们经常遇到把具有相同性质的事物聚集在一起的情况,如果我们一个个列举就显得十分冗杂,不如统一使用号码来解决这个问题,比如输入成绩时,我们对学生进行编号,再按编号输入成绩,要是你在程序中输入一个一个学生的姓名呢?是不是很麻烦

接下来我们将为大家介绍为了提高相同效率而把具有相同类型的数据有序地组织起来的一种形式——数组。


数组

在没学数组之前让我们输入5个学生的成绩、总和及其平均分并显示出来,我们一定会声明5个变量通过printf与scanf函数进行输入输出,再次通过sum求和,进而求平均。

对于上述的处理,除了变量名不同外,执行的都是相同的操作,所以当数量超过一定数值时就不能再这样处理了。

擅长处理这类数据的就是数组,它通过号码把相同数据类型的变量集中起来进行管理。

注意

可以用数组实现相同类型的对象的集合。

统一类型的变量——元素集中起来,在内存上排成一条直线,这就是数组。


数组的声明(使用数组前的准备)

首先进行声明,数组的声明通过指定元素类型、变量名、元素个数来进行,并且[ ]中的元素个数必须是常量。

,,下面是声明数组a,是一个元素类型为int类型、元素个数为5的数组。


访问数组(数组的使用方法)

数组a的各个元素,都是int类型的对象,不允许一些元素是int类型一些元素是double类型。

对于数组内各个元素的访问(读取)都是自由的,访问元素使用的是“[ ]”称为下标运算符。[ ]中的操作数称为下标

下标表示是首个元素之后的第几个元素,而不是数组中的第几个元素。

 另外,数组声明中使用的[ ]仅仅是分隔符,而访问数组时使用的则是运算符。

下表运算符
a[b]                          从数组a的首个元素起,访问b个元素后的元素

例如,从第一个元素开始访问是a[0],第二个元素是a[1]……第n个元素是a[n-1],不存在a[-1]、a[n]这样就溢出了。


数组的遍历

创建一个元素类型为int类型,包含5个元素的数组,依次把1—5赋值给它们并且进行显示。

#include<stdio.h>int main()
{int v[5];v[0] = 1;//下标:0 1 2 3 4 v[1] = 2;//元素:1 2 3 4 5v[2] = 3;v[3] = 4;v[4] = 5;printf("v[0] = %d\n", v[0]);printf("v[1] = %d\n", v[1]);printf("v[2] = %d\n", v[2]);printf("v[3] = %d\n", v[3]);printf("v[4] = %d\n", v[4]);return 0;
}

接下来我们使用for语句对其进行简化修改:创建变量i,是i从0递增到5,执行5次循环

#include<stdio.h>int main()
{int v[5];int i;for(i = 0; i < 5; i++)//为元素赋值{v[i] = i + 1;}for(i = 0; i < 5; i++)//显示元素的值{printf("v[%d] = %d\n", v[i], i);}return 0;
}

接下来我们来进一步显示它循环的过程:

i=1时,v[0]=0+1;

i=2时,v[1]=1+1;

………………

i=4时,v[4]=4+1;

 像这样,按顺序逐个查看数组的元素,就称为遍历


数组初始化

1.在声明变量时,除了必要的情况下,都需要对变量进行初始化。

int v[5] = {1, 2, 3, 4, 5};

最后一个初始值加不加逗号都可以。

2.我们还可以像下面在声明数组时不指定元素个数,数组会根据初始值的个数自动进行设置。

int v[] = {1, 2, 3, 4, 5};

3.使用0对{}内没有赋初始值的元素进行初始化。

int v[5] = {1, 2};//{1, 2, 0, 0, 0}

4.使用0对初始化数组内的全部元素

int v[0] = {0};//{0, 0, 0, 0, 0}

在初始化数组时,也有错误的操作

当初始值的个数超过超过数组的元素个数时,程序会发生错误。

int v[3] = {1, 2, 3, 4, 5};//初始化值过多

不能通过赋值语句进行初始化

int v[3];
v = {1, 2, 3};


最后,天气渐冷,大家一定要做好保暖措施,锻炼身体,预防流感!

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

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

相关文章

python-爬取壁纸

代理池的&#xff0c;防止IP 被封 找到图片真实地址 现在看到的只是图片的预览地址 (previews) 1.检查&#xff1a; 2.鼠标变为箭头时查看网页源代码 关于怎样在源代码中找到图片的真实地址 ??? 为什么在源代码界面 ctrl f 时候搜索的是 .png ??? 首先图片地址是以 .j…

11 月公链盘点:Solana 强势复苏,Blast 飞速崛起,Web3 游戏市值猛涨

作者&#xff1a;stellafootprint.network 11 月的加密市场充满了重大事件&#xff0c;从比特币 ETF 的热议到币安 40 亿美元的和解&#xff0c;均获得了极大的关注。在以太坊继续主导 TVL 和像 Arbitrum 这样的 Layer 2 成为焦点的同时&#xff0c;我们也见证了 Solana 引人注…

通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair

本文通过示例介绍了 RIOT 如何轻松地将数据从 AWS ElastiCache 迁移到云原生内存数据库&#xff08;如 Tair 和云数据库 Redis 版&#xff09;。 1. 准备资源迁移 1.1. 源代码 AWS ElastiCache cache.r6g.xlarge。它有三个数据分片&#xff0c;与 Redis 6.2 兼容。 AWS EC2 t2.…

TypeScript中的基本类型

提示&#xff1a;TypeScript中的基本类型 文章目录 前言基本类型1.类型声明2.自动类型判断3.类型断言 前言 TypeScript &#xff08;计算机编程语言&#xff09;简称&#xff1a;TS&#xff0c;是 JavaScript 的超集。简单来说就是&#xff1a;JS 有的 TS 都有。JS写的代码在TS…

Video anomaly detection with spatio-temporal dissociation 论文阅读

Video anomaly detection with spatio-temporal dissociation 摘要1.介绍2.相关工作3. Methods3.1. Overview3.2. Spatial autoencoder3.3. Motion autoencoder3.4. Variance attention module3.5. Clustering3.6. The training objective function 4. Experiments5. Conclusio…

白酒行业@2023: 「库存」的烦恼

【潮汐商业评论/原创】 不久前&#xff0c;中国酒类流通协会官方微信通知&#xff0c;“经销商及代理商积压库存过多&#xff0c;无法进行正常采购”&#xff0c;原计划于12月11至13日举办的2023杭州国际酒业博览会延期&#xff0c;将与2024北京国际酒业博览会合并。 库存过多…

Reinfocement Learning 学习笔记PartⅠ

文章目录 Reinfocement Learning一、基本概念二、贝尔曼公式&#xff08;bellman equation&#xff09;2.1 为什么return重要2.2 state value function的定义2.3 贝尔曼公式推导2.4 如何求解贝尔曼公式2.5 Action value的定义 三、贝尔曼最优公式&#xff08;bellman optimalit…

山西电力市场日前价格预测【2023-12-11】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-12-11&#xff09;山西电力市场全天平均日前电价为535.55元/MWh。其中&#xff0c;最高日前电价为689.29元/MWh&#xff0c;预计出现在09:00。最低日前电价为422.38元/MWh&#xff0c;预计…

许战海战略文库|美国品牌实践:从品类品牌向产业品牌转变

引言&#xff1a;《品类战略》是上世纪70年代特劳特和里斯所推崇的定位理论,强调“品类聚焦是唯一正确的战略“新品类要使用新品牌”等战略思想,并对品牌延伸等多元化品牌进行批判,并由中国代理人传入中国&#xff0c;从2002年至今滋生了众多品类品牌,阻碍中国经济发展。 在今天…

是谁,在参与数十亿美元的量子市场?

量子技术是最不为人们所了解、但却最有希望在未来几年颠覆商业和产业的进步技术之一。 很少有像量子信息科学市场这样小的市场能引起如此热烈的讨论。上周&#xff0c;根据Hyperion Research在圣克拉拉举行的Q2B硅谷会议上发布的年度量子计算&#xff08;QC&#xff09;市场更新…

为养宠家庭量身打造,352 X63 Pet宠物专效空气净化器“养宠安馨,人宠共护”

当下,养宠人群日益增多,宠物在给家庭带来了欢乐的同时,也产生了一系列困扰,如何在健康环境中快乐养宠,成为很多家养宠家庭的新需求。成立于2014年的北京三五二环保科技有限公司是一家立足于家庭洁净空气和安全用水领域的科技创新型公司。以“安全、健康、舒适”等消费需求为核心…

桌面便签软件哪个好用?可以放在桌面上的便签软件使用哪个

在现代快节奏的生活中&#xff0c;我们时常感到生活与工作的节奏难以协调。繁琐的工作日程与待办任务繁杂交织&#xff0c;往往让我们束手无策&#xff0c;无法高效地进行协调与分配。 桌面便签工具成为了我们处理这些挑战的得力助手。它不仅能够随时提醒我们完成任务&#xf…

如何本地搭建WampServer并结合cpolar内网穿透实现远程访问

文章目录 前言1.WampServer下载安装2.WampServer启动3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 Wamp 是一个 Windows系统下的 Apache PHP Mysql 集成安装环境&#xff0c;是一组常用来…

win10编译golang程序报病毒错误

错误为command-line-arguments: open C:\Users\ADMINI~1\AppData\Local\Temp\go-build435947867\b001\exe\a.out.exe: Operation did not complete successfully because the file contains a virus or potentially unwanted software. 解决办法&#xff0c;将Local/Temp目录添…

【Linux】之进程间通信

0x00.概述 本文将基于linux系统介绍进程间通信的几种方式&#xff0c;包括匿名管道&#xff0c;命名管道&#xff0c;systemV的共享内存等&#xff0c;全是干货&#xff0c;无废话 0x01.匿名管道 匿名管道&#xff1a; 通过调用 pipe 函数创建的&#xff0c;它在内存中创建一…

【毕业设计之Android系列】智能家居远程控制系统设计

智能家居远程控制系统设计 摘 要 该系统是一种基于Android平台的应用程序&#xff0c;可以通过网络连接实现对家居设备的远程控制。其主要功能包括家居设备的开关控制、温度调节、音乐播放、安防监控等。系统的设计需要考虑硬件、软件、数据传输、安全性和扩展性等因素&#xf…

基于OHTPPS实现网站HTTPS访问

前言 笔者近期为网站配置HTTPS的域名&#xff0c;查找了大量方案&#xff0c;最近寻得一个不错的解决方式&#xff0c;通过OHTTPS获取免费的证书并部署到阿里云服务器上。 步骤 到OHTTPS官网注册账号 官方地址如下&#xff0c;读者可以先行到官网注册一下账号&#xff0c;笔…

基于级联式逆残差网络的遥感图像轻量目标检测算法

源自&#xff1a;电子学报 作者&#xff1a;陈立 张帆 郭威 黄赟 李继中 “人工智能技术与咨询” 发布 摘 要 遥感场景下的高实时目标检测任务具有重要的研究价值与应用意义. 针对当前遥感图像目标检测模型由于目标多角度、排列密集以及背景复杂从而导致检测速度慢的…

Science Robotics封面文章:瑞士洛桑联邦理工学院研制仿生鳄鱼和仿生巨蜥机器人,走进非洲尼罗河

动物表现出多种多样的形态和大小&#xff0c;通常与它们所处的介质有关。它们可以游泳、爬行、行走、奔跑、跳跃、飞行和滑翔等。进化使它们复杂而有效地结合不同类型的运动来逃避捕食者、交配或寻找食物 。作为科学家去研究如此丰富的动物运动&#xff0c;可以了解自然界的一些…