首页 > 其他分享 >C语言中的二维数组

C语言中的二维数组

时间:2025-01-21 13:02:47浏览次数:3  
标签:初始化 一维 int 数组名 C语言 二维 数组

1.二维数组的定义

类型说明符 数组名  [常量表达式][常量表达式];

(1).类型说明符            表示二维数组中数据元素的类型 
(2).数组名                   标识符 
(3).[常量表达式][常量表达式]  
       第1维             第2维   
          行                   列 
int score[5][6];          表示定义了一个包含了5行 6列 int型数据的数组
     
2.二维数组的本质    实际上一个一维数组的一维数组 ,c语言中并不存在真正的二维数组。

int a[3][4];      一维数组(int[4])的 一维数组 [3] 

3.二维数组元素的访问:
数组名[第一维下标][第二维下标]
数组名[行][列]

4.初始化

全部初始化 
int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};

部分初始化 
int a[3][4] = {1,2,3,4,5,6};

全部初始化成0 
int a[3][4] = {};
int a[3][4] = {0};

初始化时:二维数组的行数可以省略,单数列数不能省略 。
int a[][4] = {1,2,3,4} 

例:定义一个3*4的二维数组,从键盘输入数据 ,找出能被3整除的数 

	int a[3][4];
	int i=0;
	int j=0;
	for(i=0;i<3;++i)
	{
		for(j=0;j<4;++j)
		{
		scanf("%d",&a[i][j]);
		}
	}
	for(i=0;i<3;++i)
	{
		for(j=0;j<4;++j)
		{
			if(a[i][j]%3==0)
			{
				printf("%d ",a[i][j]);
			}
		}
	}

     从 二维数组中 找最大值

	int a[2][3];
	int i=0;
	int j=0;
	for(i=0;i<3;++i)
	{
		for(j=0;j<4;++j)
		{
			scanf("%d",&a[i][j]);
		}
	}
	int max = a[0][0];
	for(i=0;i<3;++i)
	{
		for(j=0;j<4;++j)
		{
			if(a[i][j]>max)
			{
				a[i][j]=max;
			}
		}
	}
	printf("%d",a[i][j]);

标签:初始化,一维,int,数组名,C语言,二维,数组
From: https://blog.csdn.net/weixin_51790712/article/details/145260609

相关文章

  • 树状数组
    Question01[P3374树状数组一]模板题Code#include<bits/stdc++.h>usingnamespacestd;constintN=5e5+7;classTree{ public: inlinevoidscan(longlong*_data,int_size){ size=_size; for(inti=1;i<=size;i++)_data[i]+=_data[i-1]; for(inti......
  • C语言程序设计十大排序—冒泡排序
    文章目录1.概念✅2.冒泡排序......
  • C语言编译
    C语言编译是把C语言编写的源代码转换为计算机能执行的机器码的过程。 首先需要一个文本编辑器来写代码,比如Vim、Notepad++等。代码写好后,使用C编译器,常见的有GCC(GNUCompilerCollection)。以GCC为例,如果有一个名为 main.c 的源文件,在命令行中输入 gccmain.c-ooutput ......
  • 5、原来可以这样理解C语言_数组
    目录​编辑1.数组的概念2.⼀维数组的创建和初始化2.1数组创建⼀维数组创建的基本语法如下:2.2数组的初始化2.3数组的类型3.⼀维数组的使⽤ 3.1数组下标3.2数组元素的打印3.3数组的输⼊4.⼀维数组在内存中的存储5.sizeof计算数组元素个数6.⼆维数组......
  • 洛谷 P3397:地毯 ← “二维前缀和 + 二维差分”模板题
    【题目来源】https://www.luogu.com.cn/problem/P3397【题目描述】在n×n的格子上有m个地毯。给出这些地毯的信息,问每个点被多少个地毯覆盖。【输入格式】第一行,两个正整数n,m。意义如题所述。接下来m行,每行两个坐标(x1,y1)和(x2,y2),代表一块地毯,左上角......
  • 一文告诉你Linux下如何用C语言实现ini配置文件的解析和保存
    嵌入式项目开发中,会有很多功能模块需要频繁修改参数,Linux下我们可以通过ini格式的文件保存配置信息。本文通过开源库iniparser,详细讲解如何用C语言实现ini文件的参数解析和配置保存。本文代码实例获取方式见文末。一、ini文件1什么是ini文件INI(InitializationFile)文件是......
  • 树状数组
    l(x)=x-lowbit(x)+1。即,l(x)是c[x]管辖范围的左端点。对于任意正整数x,总能将x表示成s*2^{k+1}+2^k的形式,其中lowbit(x)=2^k。下面「c[x]和c[y]不交」指c[x]的管辖范围和c[y]的管辖范围不相交,即[l(x),x]和[l(y),y]不相交。「c[x]包含于c[y]」......
  • 剑指offer面试题3:数组中重复的数字(Python实现)
    """面试题3:数组中重复的数字在一个长度为n的数组里所有数字都在0~n-1的范围内,某些数字是重复的,找出任意一个重复的数字"""defduplicate1(numbers:list,length:int)->int:"""修改原数组"""ifnumbers==[]orlength<=0:......
  • java —— 数组(超详细教程)
    介绍:这期讲的是java的原生数组,也就是list(静态空间),空间是写死的;后期的ArrayList是动态数组。我们需要先认识基础的格式,方便后面的ArrayList学习。一、创建数组(一)方法一:1、先声明,再定义长度。publicstaticvoidmain(String[]args){//声明变量int[......
  • C语言逆序操作数组和引用传递参数
    ////main.c//Test_C////Createdbystevexiaohuzhaoon2025/1/20.//#include<stdio.h>//C语言指针传递参数(引用传递)voidswap(int*px,int*py){intt=*px;*px=*py;*py=t;}voidtest(intn){intx=1;for(inti......