首页 > 其他分享 >数组以及数组应用(一)

数组以及数组应用(一)

时间:2024-04-05 23:31:29浏览次数:19  
标签:下标 数组 以及 int 元素 C语言 数组名 应用

在C语言中,数组是一种存储相同类型数据元素的集合。每个元素在数组中都有一个唯一的索引,通过索引可以访问数组中的元素。数组的声明格式为"数据类型 数组名[数组大小]",例如"int arr[5]"表示声明了一个包含5个整数的数组。

 

在C语言中,数组的下标是从0开始的,也就是第一个元素的下标是0,第二个元素的下标是1,依此类推。我们可以通过下标来访问数组中的元素,比如"arr[0]"表示访问数组"arr"中的第一个元素。另外,C语言中的数组在内存中是连续存储的,这也是数组在访问和操作上效率高的原因之一。以下是数组的一些使用方式:

 

 1. 数组的声明和初始化

在C语言中,声明数组的语法格式为"数据类型 数组名[数组大小]",例如:

int numbers[5]; // 声明了一个包含5个整数的数组

当然了,我们也可以在声明数组的同时进行初始化,例如:

int numbers[5] = {1, 2, 3, 4, 5}; // 初始化一个包含5个整数的数组

也允许只对数组前面若干个连续的元素赋初值,这时后面的元素将自动赋0值,例如:

int x[7]={1,2,3,4};//这是后面的3个元素都是0

 

 2. 访问数组元素

数组的元素可以通过下标来访问,下标从0开始,例如:

int firstElement = numbers[0]; // 访问数组中的第一个元素

int thirdElement = numbers[2]; // 访问数组中的第三个元素

 

3. 数组的遍历

可以使用循环结构来遍历数组中的所有元素,例如:

for (int i = 0; i < 5; i++)

 { printf("%d ", numbers[i]);}

 

 

4. 多维数组

C语言支持多维数组,例如二维数组的声明和访问方式如下:

int matrix[3][3]; // 声明了一个3行3列的二维数组

matrix[0][0] = 1; // 访问二维数组中的元素

 

 5. 数组名和指针

数组名实际上是数组第一个元素的地址,在很多情况下可以被当作指向数组的指针使用,例如:

int *ptr = numbers; // 数组名被当作指针使用

 

以下是一些关于在使用数组时的注意事项:

 

1. 数组的大小是固定的:在C语言中,一旦数组被创建,其大小就不能改变。如果你需要动态改变数组的大小,你可能需要使用动态内存分配(如malloc,realloc等)。

2. 数组名是一个指针:在C语言中,数组名实际上是指向数组第一个元素的指针。然而,这个指针是常量,不能被修改。也就是说,你不能让数组名指向另一个数组或者内存区域。

3. 数组越界:C语言不会进行数组越界的检查。如果你试图访问数组的边界之外的元素,编译器不会报错,但是结果可能是未定义的,这可能会导致程序崩溃或数据错误。

4. 初始化数组:在C语言中,你可以在声明数组的同时初始化它。如果你没有初始化数组,那么数组的内容将是不确定的,取决于数组在内存中的位置。

5. 多维数组:多维数组在C语言中是以行优先的方式存储的。也就是说,对于一个二维数组a[m][n],a[i][j]的内存地址实际上是a[0][0]的内存地址加上i*n+j的偏移量。

6. 字符串和字符数组:在C语言中,字符串实际上是字符数组的一种。字符串的结束是由'\0'字符标记的。因此,当你为字符串分配内存时,需要确保有足够的空间来存储'\0'字符。

7. 数组和指针的关系:数组和指针在C语言中有密切的关系。你可以使用指针来操作数组,反之亦然。然而,你需要清楚地理解这两者之间的区别和联系,以避免出现错误。

 

下面我们来介绍数组的一些基本应用:

 

一、数据统计

 

1.统计不同分数段的人数

我们首先将分数段分为11档:0—9、10—19、20—29、……90—99、100然后用一个int整型数组来存放 这11个分数段的人数。我们又发现,当x/10对应的得数刚好为数组a的下标,所以我们可以用a[x/10]+=1来实现计数操作。

00110e38c09f4ad0bf73ef69ef4e686c.png

 随便普及一下:在C语言中,"%5d",这是一种格式化输出整数的格式化字符串。"%5d"的作用是在输出整数时,如果整数字符数小于5,会在整数前面添加一定数量的空格,使得整个输出的宽度至少为5个字符。这样做的目的是为了对齐输出,使得数据在视觉上更加整齐。例如,当使用"printf("%5d", 4)时,会输出"00004",其中前面的"0000"是用于填充的空格。在本例中是为了使数据和上面的分数段对齐。

2. 找最大最小值

以从小到大为例,我们可以先暂定第一个数为最小值,然后让它和第二个数进行比较,如果第二个数比第一个数小,则把最小值储存在第二个数的数组地址中,再与后面的元素逐一比较,以此类推,我们便可以得到最小值的排列顺序。

9676074c9fef47fe94eba2c2a3d32860.png

 我们输出的是数组的下标,为了实现精准到哪一行哪一列,你可以对maxrow等+1

d3230854c7b748bcb75cdbb4f3b4d47e.png

 

好啦,今天的分享就到这里了。再次声明:作者水平有限,如有失偏颇,还请各位不吝赐教!

 

 

 

 

标签:下标,数组,以及,int,元素,C语言,数组名,应用
From: https://blog.csdn.net/2301_82111572/article/details/137385467

相关文章

  • Day1数组+链表
    数组while(不变量)--不变量循环704.二分查找https://leetcode.cn/problems/binary-search/题目要求数组升序无重复数字方法一-左闭右闭[]左闭右闭区间[left,right],若nums[middle]!=target,则边界一定不包含middle;用while循环,当找到了则直接返回,若没有则在while循......
  • C++基础——数组
    数组:就是相同数据类型的集合三种定义和初始化数组:(1)常规数组(C数组)定义最普通的一个定义方式,也是C语言风格数据类型数组名[数组大小](2)动态数组容器vector要加入头文件#include<vector>eg:定义一个整形类型的数组std::vector<int>num(10)push_back在容器后端增加元素......
  • Day1 数组第一章part01
    1.数组理论基础重点:数组是存放在连续内存空间上的相同类型数据的集合。数组下标都是从0开始的。数组内存空间的地址是连续的。正是因为数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址。例如删除下标为3的元素,需要对下标......
  • ES6数组中删除指定元素
    ES6数组中删除指定元素 知识点:ES6从数组中删除指定元素findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。arr.splice(arr.findIndex(item=>item.id===data.id),1) http://louiszhai.github.io/2017/04/28/array/1:js中的spli......
  • c语言之指针数组
    在c语言中,一个数组元素是由指针组成的,就叫指针数组。指针数组的定义方法类型名*数组名[数组长度]如果要处理多个字符串,用指针数组会方便多。举个例子,代码如下#include<stdio.h>intmain(){ inti; char*s[]={"cprogram","control","logic"}; for(i=0;i<3;i++) ......
  • 实景三维在文化旅游领域的应用
    实景三维技术,作为一种前沿的科技手段,近年来在文化旅游领域的应用逐渐崭露头角。它能够将真实世界的场景以三维的形式精确呈现,为游客带来身临其境的体验,为文化旅游注入新的活力。本文将探讨实景三维在文化旅游领域的应用及其所带来的变革。一、实景三维技术的原理与特点实景三维技......
  • Python实战:天气应用
    1.引言天气应用是现代生活中不可或缺的一部分,它可以帮助我们实时获取天气信息,合理安排出行和活动。通过Python实现天气应用,我们可以加深对编程语言的理解,同时也能够体会到编程带来的便利。2.环境准备在开始编写天气应用之前,我们需要准备以下环境:1)Python环境:确保计......
  • C++(语法以及易错点2)
    1.内联函数 1.1概念 以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。​intADD(inta,intb){returna+b;}​ 1.2特性 1.inline是一种以空间换时间的做法,如果编......
  • C++(语法以及易错点.1)
    1.函数重载 1.1函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数或类型或类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。include<iostream>usingnamespacestd;//1、参数类型不同int......
  • 【C语言学习】之字符数组与字符串处理函数
    1.字符数组1.字符数组的初始化1.单字符形式chara[3]={'a','b','c'}                定义一个字符型一维数组,数组名a,三个下表变量a,b,ccharb[][3]={'a','b','c','d','e','f','g'}  ......