1. s1,s2,s3,...,s30
  2. 右下角的数字称为下标(subscript)
  3. 一批具有同名的同属性的数据就组成了一个数组(array),s就是数组名。
  4. 1.怎样定义和引用一维数组
  5. 一维数组、二维数组、三维数组
  6. a.怎样定义一维数组
  7. 例如,
  8. int a[10];
  9. 它表示定义了一个整型数组, 数组名为a,此数组有10个整型元素。
  10. 这10个元素是:
  11. a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]
  12. 定义一维数组的一般形式为
  13. 类型符 数组名[常量表达式];
  14. 如果在被调用的函数(不包括主函数)中定义数组,其长度可以是变量或非常量表达式。
  15. void func(int n)
  16. {
  17. int a[2*n];             //合法,n的值从实参传来
  18. ...
  19. }
  20. b.怎样引用一维数组元素
  21. 在定义数组并对其中各元素赋值后,就可以引用数组中的元素。
  22. 引用数组元素的表示形式为
  23. 数组名[下标]
  24. 例如:a[0]就是数组 a 中序号为0的元素,它和一个简单变量的地位和作用相似。
  25. "下标"可以是整型常量或整行表达式。
  26. 对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出。
  27. #include "stdafx.h"
  28. int _tmain(int argc, _TCHAR* argv[])
  29. {
  30. int i,a[10];
  31. for(i=0;i<=9;i++)
  32. a[i]=i;
  33. for(i=9;i>=0;i--)
  34. printf("%d ",a[i]);
  35. printf("\n");
  36. return 0;
  37. }
  38. c.一维数组的初始化
  39. 为了使程序简洁,常在定义数组的同时,给各数组元素赋值,这称为数组的初始化。
  40. //在定义数组时对全部数组元素赋予初值。例如
  41. int a[10]={0,1,2,3,4,5,6,7,8,9};
  42. //可以只给数组中的一部分元素赋值。例如
  43. int a[10]={0,1,2,3,4};
  44. //如果想使一个数组中全部元素值为0,可以写成
  45. int a[10]={0,0,0,0,0,0,0,0,0,0};
  46. int a[10]={0};
  47. //在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。例如:
  48. int a[5]={1,2,3,4,5};
  49. 可以写成
  50. int a[]={1,2,3,4,5};
  51. d.一维数组程序举例
  52. 用数组来处理求 Fibonacci 数列问题
  53. #include "stdafx.h"
  54. int _tmain(int argc, _TCHAR* argv[])
  55. {
  56. int i;
  57. int f[20]={1,1};
  58. for(i=2;i<20;i++)
  59. f[i]=f[i-2]+f[i-1];
  60. for(i=0;i<20;i++)
  61. {
  62. if(i%5==0) printf("\n");
  63. printf("%12d",f[i]);
  64. }
  65. printf("\n");
  66. return 0;
  67. }
  68. 有10个地区的面积,要求对它们按由小到大的顺序排列
  69. #include "stdafx.h"
  70. int _tmain(int argc, _TCHAR* argv[])
  71. {
  72. int a[10];
  73. int i,j,t;
  74. printf("input 10 numbers :\n");
  75. for(i=0;i<10;i++)
  76. scanf_s("%d",&a[i]);
  77. printf("\n");
  78. for(j=0;j<9;j++)
  79. for(i=0;i<9-j;i++)
  80. if(a[i]>a[i+1])
  81. {t=a[i];a[i]=a[i+1];a[i+1]=t;}
  82. printf("the sorted numbers :\n");
  83. for(i=0;i<10;i++)
  84. printf("%d ",a[i]);
  85. printf("\n");
  86. return 0;
  87. }
  1. 2.怎样定义和引用二维数组
  2. 二维数组常称为矩阵(matrix)。把二维数组写成行(column)和列(row)的排列形式,
  3. 可以有助于形象化地理解二维数组的逻辑结构。
  4. a.怎样定义二维数组
  5. float pay[3][6];
  6. 以上定义了一个 float 型的二维数组,第一维有3个元素,第2维有6个元素。
  7. 每一维的长度分别用一堆括号包起来。
  8. 二维数组定义的一般形式为
  9. 类型说明符 数组名[常量表达式][常量表达式];
  10. b.怎样引用二维数组的元素
  11. 二维数组元素的表示形式为
  12. 数组名[下标][下标]
  13. c.二维数组的初始化
  14. //分行给二维数组赋初值。例如:
  15. int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
  16. //可以将所有数据写在一个大括号内,按数组元素在内存中的排列顺序对各元素赋初值。例如:
  17. int a[3][4]={1,2,3,4,5,6,7,8,9,10,,11,12};
  18. //可以对部分元素赋初值
  19. int a[3][4]={{1},{5},{9}};
  20. int a[3][4]={{1},{},{9}};
  21. //如果对全部元素都赋初值,则定义数组时对第1维的长度可以不指定,但第2维的长度不能省。
  22. 例如:
  23. int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
  24. 与下面的定义等价:
  25. int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
  26. int a[][4]={{0,0,3},{},{0,10}};
  27. 数组各元素为
  28. 0   0   3   0
  29. 0   0   0   0
  30. 0   10  0   0
  31. d.二维数组程序举例
  32. 将一个二维数组行和列的元素互换,存在另一个二维数组中
  33. #include "stdafx.h"
  34. int _tmain(int argc, _TCHAR* argv[])
  35. {
  36. int a[2][3]={{1,2,3},{4,5,6}};
  37. int b[3][2],i,j;
  38. printf("array a:\n");
  39. for(i=0;i<=1;i++)
  40. {
  41. for(j=0;j<=2;j++)
  42. {
  43. printf("%5d",a[i][j]);
  44. b[j][i]=a[i][j];
  45. }
  46. printf("\n");
  47. }
  48. printf("array b:\n");
  49. for(i=0;i<=2;i++)
  50. {
  51. for(j=0;j<=1;j++)
  52. printf("%5d",b[i][j]);
  53. printf("\n");
  54. }
  55. return 0;
  56. }
  57. 有一个3*4的矩阵,要求编程序求出其中最大的那个元素的值,以及其所在的行号和列号
  58. #include "stdafx.h"
  59. int _tmain(int argc, _TCHAR* argv[])
  60. {
  61. int i,j,row=0,colum=0,max;
  62. int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
  63. max=a[0][0];
  64. for(i=0;i<=2;i++)
  65. for(j=0;j<=3;j++)
  66. if(a[i][j]>max)
  67. {
  68. max=a[i][j];
  69. row=i;
  70. colum=j;
  71. }
  72. printf("max=%d\nrow=%d\ncolum=%d\n",max,row,colum);
  73. return 0;
  74. }

转载于:https://blog.51cto.com/290692/1129317

怎样定义和引用一维数组,二维数组相关推荐

  1. day06数组-一维数组二维数组

    数组:          数组到底是什么呢?有什么特点呢?通过上面的分析:我们可以得到如下两句话:                 1.数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. ...

  2. c 语言 二维数组地址,C/C++ 关于一维或二维数组首地址表示含义

    C/C++ 关于一维或二维数组首地址表示含义 发布时间:2020-06-26 10:35:21 来源:51CTO 阅读:210 作者:sonissa 这是一个经常会忘却的知识点,最近也一直在吃这方面的 ...

  3. c/c++教程 - 1.7 数组 一维数组 二维数组

    九.数组 数组:一个里面存放了相同类型数据元素的集合. 特点:每个数组中的元素都是相同的数据类型:数组是由连续的内存位置组成的. 注意:数组的下标是从0开始索引. 参考视频:https://www.b ...

  4. 数组(一维数组、多维数组/二维数组)和简单排序算法

    提示:数组是线性数据结构中最为基础,最为典型的一种顺序型结构. 它用一组连续的内存空间 ,来存储一组具有相同类型的数据. 与变量相比,变量是一种单一的数据存储方式,而数组是用于存储一连串的一组数据. ...

  5. C# 指定格式的字符串截成一维数组(二维数组)的操作类

    指定格式的字符串截成一维数组(二维数组)的操作类 做项目时经常会遇到将"1,3,a,b,d"截成一维数组或将"1,a;2,b;3,c;4,d"截成二维数组.虽然 ...

  6. python二维数组的行和列_python 定义N行2列二维数组与赋值

    python中怎么用花括号定义一个5行4列的数组花括号是字典,不是数组. python:定义函数,输入一个m维数组X和一个整数n,输# Python3.6import numpy as npwhile ...

  7. Java学习笔记2.6.2 数组 - 二维数组

    文章目录 零.本讲学习目标 一.引入多维数组的场景 二.二维数组的定义 (一)指定二维数组行数与列数 (二)指定二维数组行数,不指定列数 (三)直接使用嵌套大括号"{}"静态初始化 ...

  8. C语言数组——二维数组

    C语言目录 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C语言基础-第一个C程序 C语言基础-简单程序分析 VS ...

  9. 【C 语言】二级指针内存模型 ( 指针数组 | 二维数组 | 自定义二级指针 | 将 一、二 模型数据拷贝到 三 模型中 并 排序 )

    文章目录 一.指针数组 和 二维数组 数据 拷贝到 自定义二级指针 中 1.函数形参 设计规则 2.三种内存模型 对应 函数形参 指针退化规则 二.完整代码示例 一.指针数组 和 二维数组 数据 拷贝 ...

  10. php 二位数组随机,PHP多维数组 php打乱数组二维数组多维数组的简单实例

    php中的shuffle函数只能打乱一维数组,有什么办法快速便捷的打乱多维数组?手册上提供了 上面这个是针对二维数组的! 下面针对多维数组的乱序方法?尽可能的方便快速: 以下函数也是出自php手册,可 ...

最新文章

  1. 这是我看过,最好懂的神经网络
  2. owc_绘图区(PlotArea)背景显示多种颜色
  3. laravel框架集成PHPExcel讲解及demo
  4. please get a license from www.texturepacker.com
  5. CocoaPods的安装[转载]
  6. MySQL数据迁移到SQL Server
  7. smartupload 路径不存在_洞悉复杂金融场景,覆盖完备测试路径
  8. 接口隔离原则_设计模式的三大分类及六大原则
  9. JM与h264标准中的关键字说明
  10. ajax解析json中的对象数组对象,在JQuery中检索json数组后获取json对象Ajax
  11. MySql 应该选择普通索引 还是唯一 索引???
  12. lstm模型java实现_如何在Keras中构建LSTM分类器模型
  13. switch的处理方法
  14. 从0开始学习 GitHub 系列之「Git速成」
  15. JS中编码的三种方法
  16. JSP文件的中文在浏览器上显示乱码解决方法
  17. 按键精灵手机助手之实战篇(二)防封
  18. 统一软件开发过程(RUP)的概念和方法
  19. 设定自己的100个人生目标
  20. 【转载】7个最佳的双因素认证解决方案

热门文章

  1. FAIL : SSHException: Incompatible ssh peer (no acceptable kex algorithm)
  2. 已知矩阵 matlab,在MATLAB中,已知矩阵A,那么A(:,2:end)表示
  3. pwm波如何控制电机代码_PWM波控制720电机
  4. Spring IOC扫描器与注册器
  5. android 判断webview加载成功,Android:如何检查使用webview.loadUrl时url的成功加载
  6. linux rsync 安装教程,linux下的rsync配置和使用教程
  7. Linux基础知识之用户和用户组以及 Linux 权限管理
  8. 2021年中国机器视觉市场研究报告
  9. 大数据与实体经济深度融合全国行首站将于7月10日在贵州举办
  10. 【2017年第1期】ISO 8000(大)数据质量标准及应用