怎样定义和引用一维数组,二维数组
- s1,s2,s3,...,s30
- 右下角的数字称为下标(subscript)
- 一批具有同名的同属性的数据就组成了一个数组(array),s就是数组名。
- 1.怎样定义和引用一维数组
- 一维数组、二维数组、三维数组
- a.怎样定义一维数组
- 例如,
- int a[10];
- 它表示定义了一个整型数组, 数组名为a,此数组有10个整型元素。
- 这10个元素是:
- a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]
- 定义一维数组的一般形式为
- 类型符 数组名[常量表达式];
- 如果在被调用的函数(不包括主函数)中定义数组,其长度可以是变量或非常量表达式。
- void func(int n)
- {
- int a[2*n]; //合法,n的值从实参传来
- ...
- }
- b.怎样引用一维数组元素
- 在定义数组并对其中各元素赋值后,就可以引用数组中的元素。
- 引用数组元素的表示形式为
- 数组名[下标]
- 例如:a[0]就是数组 a 中序号为0的元素,它和一个简单变量的地位和作用相似。
- "下标"可以是整型常量或整行表达式。
- 对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出。
- #include "stdafx.h"
- int _tmain(int argc, _TCHAR* argv[])
- {
- int i,a[10];
- for(i=0;i<=9;i++)
- a[i]=i;
- for(i=9;i>=0;i--)
- printf("%d ",a[i]);
- printf("\n");
- return 0;
- }
- c.一维数组的初始化
- 为了使程序简洁,常在定义数组的同时,给各数组元素赋值,这称为数组的初始化。
- //在定义数组时对全部数组元素赋予初值。例如
- int a[10]={0,1,2,3,4,5,6,7,8,9};
- //可以只给数组中的一部分元素赋值。例如
- int a[10]={0,1,2,3,4};
- //如果想使一个数组中全部元素值为0,可以写成
- int a[10]={0,0,0,0,0,0,0,0,0,0};
- 或
- int a[10]={0};
- //在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。例如:
- int a[5]={1,2,3,4,5};
- 可以写成
- int a[]={1,2,3,4,5};
- d.一维数组程序举例
- 用数组来处理求 Fibonacci 数列问题
- #include "stdafx.h"
- int _tmain(int argc, _TCHAR* argv[])
- {
- int i;
- int f[20]={1,1};
- for(i=2;i<20;i++)
- f[i]=f[i-2]+f[i-1];
- for(i=0;i<20;i++)
- {
- if(i%5==0) printf("\n");
- printf("%12d",f[i]);
- }
- printf("\n");
- return 0;
- }
- 有10个地区的面积,要求对它们按由小到大的顺序排列
- #include "stdafx.h"
- int _tmain(int argc, _TCHAR* argv[])
- {
- int a[10];
- int i,j,t;
- printf("input 10 numbers :\n");
- for(i=0;i<10;i++)
- scanf_s("%d",&a[i]);
- printf("\n");
- for(j=0;j<9;j++)
- for(i=0;i<9-j;i++)
- if(a[i]>a[i+1])
- {t=a[i];a[i]=a[i+1];a[i+1]=t;}
- printf("the sorted numbers :\n");
- for(i=0;i<10;i++)
- printf("%d ",a[i]);
- printf("\n");
- return 0;
- }
- 2.怎样定义和引用二维数组
- 二维数组常称为矩阵(matrix)。把二维数组写成行(column)和列(row)的排列形式,
- 可以有助于形象化地理解二维数组的逻辑结构。
- a.怎样定义二维数组
- float pay[3][6];
- 以上定义了一个 float 型的二维数组,第一维有3个元素,第2维有6个元素。
- 每一维的长度分别用一堆括号包起来。
- 二维数组定义的一般形式为
- 类型说明符 数组名[常量表达式][常量表达式];
- b.怎样引用二维数组的元素
- 二维数组元素的表示形式为
- 数组名[下标][下标]
- c.二维数组的初始化
- //分行给二维数组赋初值。例如:
- 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,7,8,9,10,,11,12};
- //可以对部分元素赋初值
- int a[3][4]={{1},{5},{9}};
- int a[3][4]={{1},{},{9}};
- //如果对全部元素都赋初值,则定义数组时对第1维的长度可以不指定,但第2维的长度不能省。
- 例如:
- int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
- 与下面的定义等价:
- int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
- int a[][4]={{0,0,3},{},{0,10}};
- 数组各元素为
- 0 0 3 0
- 0 0 0 0
- 0 10 0 0
- d.二维数组程序举例
- 将一个二维数组行和列的元素互换,存在另一个二维数组中
- #include "stdafx.h"
- int _tmain(int argc, _TCHAR* argv[])
- {
- int a[2][3]={{1,2,3},{4,5,6}};
- int b[3][2],i,j;
- printf("array a:\n");
- for(i=0;i<=1;i++)
- {
- for(j=0;j<=2;j++)
- {
- printf("%5d",a[i][j]);
- b[j][i]=a[i][j];
- }
- printf("\n");
- }
- printf("array b:\n");
- for(i=0;i<=2;i++)
- {
- for(j=0;j<=1;j++)
- printf("%5d",b[i][j]);
- printf("\n");
- }
- return 0;
- }
- 有一个3*4的矩阵,要求编程序求出其中最大的那个元素的值,以及其所在的行号和列号
- #include "stdafx.h"
- int _tmain(int argc, _TCHAR* argv[])
- {
- int i,j,row=0,colum=0,max;
- int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
- max=a[0][0];
- for(i=0;i<=2;i++)
- for(j=0;j<=3;j++)
- if(a[i][j]>max)
- {
- max=a[i][j];
- row=i;
- colum=j;
- }
- printf("max=%d\nrow=%d\ncolum=%d\n",max,row,colum);
- return 0;
- }
转载于:https://blog.51cto.com/290692/1129317
怎样定义和引用一维数组,二维数组相关推荐
- day06数组-一维数组二维数组
数组: 数组到底是什么呢?有什么特点呢?通过上面的分析:我们可以得到如下两句话: 1.数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. ...
- c 语言 二维数组地址,C/C++ 关于一维或二维数组首地址表示含义
C/C++ 关于一维或二维数组首地址表示含义 发布时间:2020-06-26 10:35:21 来源:51CTO 阅读:210 作者:sonissa 这是一个经常会忘却的知识点,最近也一直在吃这方面的 ...
- c/c++教程 - 1.7 数组 一维数组 二维数组
九.数组 数组:一个里面存放了相同类型数据元素的集合. 特点:每个数组中的元素都是相同的数据类型:数组是由连续的内存位置组成的. 注意:数组的下标是从0开始索引. 参考视频:https://www.b ...
- 数组(一维数组、多维数组/二维数组)和简单排序算法
提示:数组是线性数据结构中最为基础,最为典型的一种顺序型结构. 它用一组连续的内存空间 ,来存储一组具有相同类型的数据. 与变量相比,变量是一种单一的数据存储方式,而数组是用于存储一连串的一组数据. ...
- C# 指定格式的字符串截成一维数组(二维数组)的操作类
指定格式的字符串截成一维数组(二维数组)的操作类 做项目时经常会遇到将"1,3,a,b,d"截成一维数组或将"1,a;2,b;3,c;4,d"截成二维数组.虽然 ...
- python二维数组的行和列_python 定义N行2列二维数组与赋值
python中怎么用花括号定义一个5行4列的数组花括号是字典,不是数组. python:定义函数,输入一个m维数组X和一个整数n,输# Python3.6import numpy as npwhile ...
- Java学习笔记2.6.2 数组 - 二维数组
文章目录 零.本讲学习目标 一.引入多维数组的场景 二.二维数组的定义 (一)指定二维数组行数与列数 (二)指定二维数组行数,不指定列数 (三)直接使用嵌套大括号"{}"静态初始化 ...
- C语言数组——二维数组
C语言目录 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C语言基础-第一个C程序 C语言基础-简单程序分析 VS ...
- 【C 语言】二级指针内存模型 ( 指针数组 | 二维数组 | 自定义二级指针 | 将 一、二 模型数据拷贝到 三 模型中 并 排序 )
文章目录 一.指针数组 和 二维数组 数据 拷贝到 自定义二级指针 中 1.函数形参 设计规则 2.三种内存模型 对应 函数形参 指针退化规则 二.完整代码示例 一.指针数组 和 二维数组 数据 拷贝 ...
- php 二位数组随机,PHP多维数组 php打乱数组二维数组多维数组的简单实例
php中的shuffle函数只能打乱一维数组,有什么办法快速便捷的打乱多维数组?手册上提供了 上面这个是针对二维数组的! 下面针对多维数组的乱序方法?尽可能的方便快速: 以下函数也是出自php手册,可 ...
最新文章
- 这是我看过,最好懂的神经网络
- owc_绘图区(PlotArea)背景显示多种颜色
- laravel框架集成PHPExcel讲解及demo
- please get a license from www.texturepacker.com
- CocoaPods的安装[转载]
- MySQL数据迁移到SQL Server
- smartupload 路径不存在_洞悉复杂金融场景,覆盖完备测试路径
- 接口隔离原则_设计模式的三大分类及六大原则
- JM与h264标准中的关键字说明
- ajax解析json中的对象数组对象,在JQuery中检索json数组后获取json对象Ajax
- MySql 应该选择普通索引 还是唯一 索引???
- lstm模型java实现_如何在Keras中构建LSTM分类器模型
- switch的处理方法
- 从0开始学习 GitHub 系列之「Git速成」
- JS中编码的三种方法
- JSP文件的中文在浏览器上显示乱码解决方法
- 按键精灵手机助手之实战篇(二)防封
- 统一软件开发过程(RUP)的概念和方法
- 设定自己的100个人生目标
- 【转载】7个最佳的双因素认证解决方案
热门文章
- FAIL : SSHException: Incompatible ssh peer (no acceptable kex algorithm)
- 已知矩阵 matlab,在MATLAB中,已知矩阵A,那么A(:,2:end)表示
- pwm波如何控制电机代码_PWM波控制720电机
- Spring IOC扫描器与注册器
- android 判断webview加载成功,Android:如何检查使用webview.loadUrl时url的成功加载
- linux rsync 安装教程,linux下的rsync配置和使用教程
- Linux基础知识之用户和用户组以及 Linux 权限管理
- 2021年中国机器视觉市场研究报告
- 大数据与实体经济深度融合全国行首站将于7月10日在贵州举办
- 【2017年第1期】ISO 8000(大)数据质量标准及应用