当前位置: 首页 > news >正文

二维数组及经典案例

文章目录

  • 定义
  • 初始化
  • 二维数组的应用
    • 打印二维数组的元素
    • 下三角输出
    • 求和
    • 求最大值
    • 矩阵转置
    • 杨辉三角形

定义

  • 二维数组的定义
    • 定义方式:
      • 数据类型 数组名[行数][列数];
      • int a[3][4];
      • float b[2][5];
  • 数组元素的存放顺序
    • 按行序优先

  • 数组元素的引用
    • 形式:数组名[下标][下标]

初始化

  • 二维数组元素的初始化
    • 分行初始化
    • 按元素排列顺序初始化
    • 列数不能省略

  • 行数计算:sizeof(a) / sizeof(a[0])
  • 列数计算:sizeof(a[0]) / sizeof(int)

二维数组的应用

打印二维数组的元素

#include <stdio.h>int main() {int a[3][2] = {{4, 9}, {2, 8}, {5, 7}};int line_num;int column_num;int i, j;line_num = sizeof(a) / sizeof(a[0]);printf("line number=%d\n", line_num);column_num = sizeof(a[0]) / sizeof(int);printf("column number=%d\n", column_num);for (i = 0; i < line_num; i++) {for (j = 0; j < column_num; j++) {printf("%d ", a[i][j]);}putchar('\n');}return 0;
}

下三角输出

#include <stdio.h>int main() {int a[3][3] = {{3, 6, 19}, {2, 6, 1}, {12, 56, 91}};int i, j;for (i = 0; i < 3; i++) {for (j = 0; j <= i ; j++) {printf("%d   ", a[i][j]);}putchar('\n');}return 0;
}

求和

  • 输出二维数组所有元素的值,并求和
#include <stdio.h>int main() {int a[3][3] = {{3, 6, 19}, {2, 6, 1}, {12, 56, 91}};int i, j;int sum = 0;for (i = 0; i < 3; i++) {for (j = 0; j < 3 ; j++) {printf("%2d   ", a[i][j]);sum += a[i][j];}putchar('\n');}printf("sum=%d\n", sum);return 0;
}

求最大值

  • 要求找到二维数组的最大值,以及这个最大值所在的行号和列号。
#include <stdio.h>int main() {int a[3][3] = {{3, 6, 919}, {2, 6, 1}, {12, 56, 91}};int i, j;int max = a[0][0];int line_num, column_num;for (i = 0; i < 3; i++) {for (j = 0; j < 3 ; j++) {if (max < a[i][j]) {max = a[i][j];line_num = i; column_num = j;}printf("%2d   ", a[i][j]);}putchar('\n');}printf("max=%d %d %d\n", max, line_num, column_num);return 0;
}

矩阵转置

  • 将图a 中所示的数组转成如图b 所示的情况:

#include <stdio.h>int main() {int a[2][4] = {{1, 5, 8, 9}, {2, 6, 3, 1}};int b[4][2];int i, j;for(i = 0; i < 2; i++) {for (j = 0; j < 4; j++) {printf("%d  ", a[i][j]);}printf("\n");}printf("***************\n");for (i = 0; i < 4; i++) {for (j = 0; j < 2; j++) {b[i][j] = a[j][i];}}for (i = 0; i < 4; i++) {for (j = 0; j < 2; j++) {printf("%d ", b[i][j]);}printf("\n");}return 0;
}

杨辉三角形

  • 打印杨辉三角的前十行

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

#include <stdio.h>int main() {int a[10][10] = {0};int i, j;for (i = 0; i < 10; i++) {a[i][0] = 1;for (j = 1; j < i; j++ ) {a[i][j] = a[i-1][j-1] + a[i-1][j];}a[i][j] = 1;}for (i = 0; i < 10; i++) {for (j = 0; j <= i; j++) {printf("%-5d", a[i][j]);}printf("\n");}return 0;
}
http://www.dtcms.com/a/593765.html

相关文章:

  • 【VMware Workstation】虚拟机网络配置流程+MobaXterm连接步骤
  • 西安微网站建设wordpress视频预览插件
  • CodeBuddy + GLM-4.6:儿童诗词宝典全栈开发实战
  • PSU过程11.2.0.4.250415
  • Nanopb基本概念
  • 微网站开发平台 知乎东家乐装修公司简介
  • 基于交替方向乘子法(ADMM)的RPCA MATLAB实现
  • redis删除一个键用del还是unlink
  • 用vue.js做网站百度区域代理
  • 好人一生平安网站哪个好抖音代运营培训
  • 前端基础面试题(Css,Html,Js,Ts)
  • 使用c#强大的SourceGenerator现对象的深克隆
  • 企业移动网站建设网站文件夹命名规则
  • 【动态链接库】一、VS下基本制作与使用
  • 百度网站排名规则长春百度快速优化
  • xpert AI工作流工具本地部署
  • SP30N06NK 30V N沟道MOSFET技术解析与应用指南
  • 深圳建站公司推荐国内平台有哪些
  • 使用DFSDM模拟看门狗做过流保护以及封波应用 LAT1612
  • 远程传输大文件的软件有哪些?
  • 北京建设官方网站渠道网络大厦
  • 鸿蒙 Next 如何使用 AVRecorder 从0到1实现视频录制功能(ArkTS)
  • 动态背景网站北京网站设计制作费用
  • LSTM模型做分类任务2(PyTorch实现)
  • 企业网站模板 简洁wordpress 水印
  • PostgreSQL模式:数据库中的命名空间艺术
  • 数据库的4个基本概念
  • 做a网站wordpress 导入xml
  • zzcms网站开发wordpress 文章密码保护
  • 51-55 函数