(1)二位数组的定义int array[n][m],行下标的取值范围是0~n-1,列下标的取值范围是0~m-1,二维数组最大下标元素是array[n-1][m-1];如定义一个3行4列的数组 int array[3][4];二位数组在引用时也要注意数界限的问题。

(2)二维数组的初始化:<1>可以将所有元素卸载一个大括号内,按照数组元素排列顺序对元素赋值。如 int array[2][3]={1,2,3,4};<2>在为所有元素赋初值的时,可以省略行下标,但是不能省略列下标。如 int array[][3]={1,2,3,4,5,6}; 这就是相当于分行给组元素赋值中的int array[2][3]={{1,2,3},{4,5,6}};在分行赋值时也可以省略部分元素赋值,如int array[2][3]={{12},{7,8}};这样的数组每行没有赋值的元素的值都是0.

(3)实例,使用二位数组保存数据。本例实现用过键盘为二维数组赋值,显示二位数组,输出最大值和最小值及下标,然后转化为另外一个数组。

#include<stdio.h>
int main()
{
int a[2][3],b[3][2];/*定义两个二维数组*/
int max,min; /*定义最大值和最小值*/
int h,l,i,g; /*定义用于控制循环的变量*/
for(i=0;i<2;i++) /*通过键盘为数组元素赋值*/
{
for(j=0;j<3;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&a[i][j]);/*给遍历到的数组元素赋值*/
}
}
printf("输出二维数组");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("%d\t",a[i][j])
}
printf("\n"); /*使元素分行显示*/
}
/*求数组最大元素和下标*/
max=a[0][0];
h=0;
l=0;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
if(max<a[i][j])
{
max=a[i][j];
h=i;
l=j;
}
}
}
printf("数组中最大的元素是:\n");
printf("max:a[%d][%d]=%d\n",h,l,max);
/*求数组最小元素及其下标*/
min=a[0][0];
h=0;
l=0;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
if(min>a[i][j])
{
min=a[i][j];
h=i;
l=j;
}
}
}
printf("数组中最小的元素是:\n");
printf("min:a[%d][%d]=%d\n",hl,min);
/*将数组a转化后存入数组b*/
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
b[j][i]=a[i][j];
}
}
printf("输出转化后的数组\n");
for(j=0;j++;j<3)
{
for(i=0;i<2;i++)
{
printf("%d\t",b[i][j]);
}
printf("\n");
}
return 0;
}

  

C语言基础二维数组的更多相关文章

  1. C语言基础--二维数组

    二维数组概念: 数组中的每一个元素又是一个数组, 那么这个数组就称之为二维数组,二维数组是特殊的一维数组. 二维数组格式: 元素类型 数组名称[一维数组的个数][每个一维数组的元素个数]; 元素类型 ...

  2. C语言基础:二维数组 分类: iOS学习 c语言基础 2015-06-10 21:42 16人阅读 评论(0) 收藏

    二维数组和一位数组类似. 定义: 数据类型 数组名[行][列]={{ },{ }....}; 定义时,一维(行)的长度可以省略,但是二维(列)的长度不可以省略.但是访问时,一定使用双下标. 二维数组的 ...

  3. C语言之二维数组

    二维数组 还是一个数组,只不过数组中得每一个元素又是一个数组 1). 声明语法 类型 数组名[行][列]; 例:  int nums[2][3];//2行3列的二维数组,保存的数据类型是int类型 c ...

  4. C语言 字符二维数组(多个字符串)探讨 求解

    什么是二维字符数组? 二维字符数组中为什么定义字符串是一行一个? “hello world”在C语言中代表什么? 为什么只能在定义时才能写成char   a[10]="jvssj" ...

  5. C Program基础-二维数组

    一维数组可以看作一行连续的数据,只有一个下标.C语言允许构造二维数组甚至多维数组,在实际问题中有时候常常需要用到二维数组(例如数学上的矩阵),二维数组有两个下标,以确定某个元素在数组中的位置. (一) ...

  6. C语言中将二维数组作为函数参数来传递

    c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下: 方法一, 形参给出第二维的长度. 例如: #include <stdio.h> void func(int n, char ...

  7. C语言回顾-二维数组

    1.二维数组:是一个特殊的一维数组 完全初始化: 1)int a[2][3]={{1,2,3},{2,3,4}}; 2)连续赋值int a[2][3]={1,2,3,2,3,4}; 3)可以省略第一维 ...

  8. C语言教学--二维数组和指针的理解

    对于初学者对二维数组和指针的理解很模糊, 或者感觉很难理解, 其实我们和生活联系起来, 这一切都会变得清晰透彻. 我们用理解一维数组的思想来理解二维数组, 对于一维数组,每个箱子里存放的是具体的苹果, ...

  9. 【C语言】二维数组做形参

    二维数组有两种形式: ①在栈上:         int a[4][4] = {...}; ②在堆堆上:          int ** a = new int *[4];           for ...

随机推荐

  1. 利用Python特殊变量__dict__快速实现__repr__的一种方法

    在<第8.15节 Python重写自定义类的__repr__方法>.<Python中repr(变量)和str(变量)的返回值有什么区别和联系>.<第8.13节 Pytho ...

  2. 解析php sprintf函数漏洞

    php sprintf函数漏洞 0x01 了解sprintf()函数 1,sprintf(),函数是php中的函数 2,作用是将格式化字符串写入变量中 3,函数形式为sprintf(format,ar ...

  3. 效率神器-uTools推荐和使用

    提高办公开发效率...非常好用  功能很多很全,官网:https://u.tools/ 文档:https://u.tools/docs/guide/about-uTools.html

  4. 利用IDEA把Java项目打成jar包

    第一步:按如下步骤或Ctrl+Shift+Alt+S打开 Project Structure第二步:第三步:选择要执行的文件,  依次选择项目, main方法所在的文件, 保存如果出现以下错误:则根据 ...

  5. MySQL技术内幕InnoDB存储引擎(五)——索引及其相关算法

    索引概述 索引太多可能会降低运行性能,太少就会影响查询性能. 最开始就要在需要的地方添加索引. 常见的索引: B+树索引 全文索引 哈希索引 B+树索引 B+树 所有的叶子节点存放完整的数据,非叶子节 ...

  6. 《图解TCP/IP》笔记

    OSI参考模型 协议分层 为什么需要分层? 简化网络协议. 每一层只需要衔接上下层的服务. 利于模块化开发. 解耦. 分层的问题 过分模块化.提高数据处理的开销. OSI参考模型 作用及意义 将复杂的 ...

  7. STL——容器(Set & multiset)的迭代器

    1.set.insert(elem);     //在容器中插入元素. 2.set.begin();         //返回容器中第一个数据的迭代器. 3.set.end();          / ...

  8. 定制iview选择器——全选按钮

    源码下载:https://github.com/littleOneYuan/c_select 本文索引 效果 template data prop methods watch created 效果 下 ...

  9. windows10 64位下安装oracle 11g和PL/SQL Developer

    一.材料准备: oracle11g安装包(64位) oracle11g客户端(32位) PL\SQL Developer安装包(32位) 1.下载Oracle 11g链接:http://www.ora ...

  10. Spark性能优化指南

    1 Spark开发调优篇 原则一:避免创建重复的RDD 原则二:尽可能复用同一个RDD 原则三:对多次使用的RDD进行持久化 原则四:尽量避免使用shuffle类算子 因此在我们的开发过程中,能避免则 ...