当前课程知识点:C语言程序设计 >  第7章 数组 >  7.4 二维数组的赋值 >  二维数组的赋值

返回《C语言程序设计》慕课在线视频课程列表

二维数组的赋值在线视频

下一节:字符串的本质

返回《C语言程序设计》慕课在线视频列表

二维数组的赋值课程教案、知识点、字幕

同学们

大家好

今天我们来学习C语言中二维数组的赋值

对于二维数组的赋值问题

我们希望通过下面两个例子

来告诉大家

如何对二维数组的元素进行相应的赋值

例7.4

将一个二维数组行和列元素互换

存到另一个二维数组中

对于这个程序中

我们首先应该先定义一个具有两行三列的数组a

并对它进行相应的初始化

然后

再来定义用来存放结果的

三行两列的数组b

由于这是一个二维数组

为了控制相应的行和列

我们使用变量i和j

然后用一个外循环控制行下标的变化

再嵌套一个内循环

控制列下标的变化

在内循环体中

首先输出数组a的相应初始值

然后按照行列互换的原则

把数组a相应元素的值赋给数组b对应的元素

当整个循环结束时

我们已经做到

把a数组的相应元素值

存到行列互换以后的b数组中

由于数组a和数组b的结构不同

我们需要另外写一个双重循环

来实现b数组的元素的输出

在外循环当中

当一行元素全部输出完时

应该输出一个换行符

以明确表达数组的二维结构

对于这个程序

我们应该来思考一下

如果一个数组的行列数是相同的

也就是所谓的方阵

这个时候

我们是否需要重新定义一个数组

来存放行列元素互换的结果

另外

我们还应该思考

如果只用一个数组来实现行列元素的对换

在对换的过程当中

是否需要把原来数组所有的元素处理一遍

这个问题

留给大家课后去思考

例7.5

有一个3×4的矩阵

要求编程序求出其中值最大的那个元素的值

以及其所在的行号和列号

对于这个程序

我们先不要急着来写一个程序

先考虑一下

解决这个问题的算法思想

首先

对于一个二维数组

我们需要用一个双重循环

来依次判断各元素值的相应关系

可以先假设

一个数组的第1个元素是当前的最大值

然后

从第1个元素开始拿当前元素的值

和当前最大值作比较

如果当前元素的值更大

我们就记录当前元素的值作为当前的最大值

并同时记录下该元素的行号和列号

如果是当前元素的值

不比当前最大值更大

我们就什么也不做

当我们把所有的数组元素都比较过以后

当前的最大值

就是整个二维数组的最大值

其实这个算法

很容易推广到任意维的数组

在这个程序当中

我们需要定义存放最大值的变量

及最大值所在行号和列号的变量

以及循环控制时

行下标和列下标变量

定义原始的二维数组

并对其进行初始化

把二维数组的第1个元素赋值给

当前最大值相应变量

设计一个外循环

控制行下标的变化的

嵌套一个内循环

用来控制列下标的变化

在这个内循环体当中判断

数组当前元素与当前最大值变量

之间的大小关系

如果当前元素值更大

改变当前最大值变量的值为当前数组元素的值

并记录该数组元素的行号和列号到相应变量

在程序的最后

输出数组的最大值及所在的行号和列号

有关特殊的字符数组及字符串的处理

我们留到下一节中再做介绍

同学们

今天的内容就讲到这里

我们下一节课 再见

C语言程序设计课程列表:

第1章 C语言程序设计预备知识

-计算思维与计算机

--计算思维与计算机

--计算思维与计算机

--计算思维和计算机

第2章 C语言程序设计基础

-2.1 程序设计语言的发展及其特点和应用

--程序设计语言的发展及其特点和应用

--程序设计语言的特点及发展

- 2.2 C语言程序的基本结构及编制C语言程序的基本步骤

-- C语言程序的基本结构及编制C语言程序的基本步骤

--C语言程序的结构和编制步骤

第3章 基本数据类型、运算符与表达式

-3.1 C语言的数据类型

--C语言的数据类型

--C语言的数据类型

-3.2 常量

--常量

--常量

-3.3 什么是变量

--什么是变量

--什么是变量

-3.4 如何进行算术运算

--如何进行算术运算

--如何进行算术运算

-3.5 赋值运算符和逗号运算符

--赋值运算符和逗号运算符

--赋值运算符和逗号运算符

-3.6 数据类型转换

--数据类型转换

--数据类型转换

第4章 基本输入输出和顺序程序设计

-4.1 格式化输出printf

--格式化输出printf

--格式化输出

-4.2 格式化输入scanf及字符数据的非格式化输入输出

--格式化输入scanf及字符数据的非格式化输入输出

--格式化输入

第5章 选择结构程序设计

-5.1 关系运算符和关系表达式

--关系运算符和关系表达式

--关系运算符和关系表达式

-5.2 逻辑运算符和逻辑表达式

--逻辑运算符和逻辑表达式

--逻辑运算符和逻辑表达式

-5.3 条件运算符和条件表达式

--条件运算符和条件表达式

--条件运算符和条件表达式

-5.4 if语句

--if语句

--if语句

-5.5 switch语句

--switch语句

--switch语句

第6章 循环结构程序设计

-6.1 while语句

--while语句

--while语句

--do-while语句

-6.2 for语句

--for语句

--for语句

-6.3 循环的嵌套

--循环的嵌套

--循环的嵌套

-6.4 break语句和continue语句

--break语句和continue语句

--break和continue语句

第7章 数组

-7.1 一维数组的定义和引用

--一维数组的定义和引用

--一维数组的定义和引用

-7.2 一维数组的赋值

--一维数组的赋值

--一维数组的赋值

-7.3 二维数组的定义和引用

--二维数组的定义和引用

--二维数组的定义和引用

-7.4 二维数组的赋值

--二维数组的赋值

--二维数组的赋值

-7.5 字符串的本质

--字符串的本质

--字符串的本质

-7.6 字符串操作的常用函数

--字符串操作的常用函数

--字符串常用函数

-7.7 字符串数组

--字符串数组

--字符串数组

第8章 函数

-8.1 函数概述

--函数概述

--函数概述

-8.2 有参函数

--有参函数

--有参函数

-8.3 函数参数的传递方式

--函数参数的传递形式

--函数参数的传递方式

-8.4 变量的作用域和生存期

--变量的作用域和生存期

--变量的作用域和生存期

-8.5 变量的存储类型

--变量的存储类型

--变量的存储类型

-8.6 函数的嵌套和递归调用

--函数的嵌套和递归调用

--函数的嵌套和递归调用

-8.7 函数的作用域与封装

--函数的作用域与封装

--函数的作用域与封装

第9章 指针

-9.1 指针变量的概念(上)

--指针变量的概念(上)

--指针变量的概念(上)

-9.2 指针变量的概念(下)

--指针变量的概念(下)

--指针变量的概念(下)

-9.3 指向一维数组的指针变量

--指向一维数组的指针变量

--指向一维数组的指针变量

-9.4 指向二维数组的指针变量(上)

--指向二维数组的指针变量

--指向二维数组的指针变量(上)

-9.5 指向二维数组的指针变量(下)

--指向二维数组的指针变量(下)

--指向二维数组的指针变量(下)

-9.6 动态内存分配

--动态内存分配

--动态内存分配

第10章 预处理命令

-10.1 编译预处理

--编译预处理

第11章 复杂数据类型

-11.1 用户自己建立数据类型

--用户自己建立数据类型

--用户自己建立数据类型

-11.2 定义结构体类型变量

--定义结构体类型变量

--定义结构体类型变量

-11.3 结构体变量的引用与初始化

--结构体变量的引用与初始化

-11.4 结构体数组

--结构体数组

--结构体数组

-11.5 指向结构体类型数据的指针

--指向结构体类型数据的指针

--指向结构体类型数据的指针

第12章 文件

-12.1 文件的基本概念和文件指针

--文件的基本概念和文件指针

--文件的基本概念和文件指针

-12,2 文件的打开和关闭

--文件的打开和关闭

--文件的打开和关闭

-12.3 文本文件读写

--文本文件读写

--文本文件读写

-12.4 二进制文件读写

--二进制文件读写

--二进制文件读写

二维数组的赋值笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。