当前课程知识点:C语言程序设计(上) >  数组(二) >  5.6 二维数组的输入输出 >  5.6 二维数组的输入与输出

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

5.6 二维数组的输入与输出在线视频

5.6 二维数组的输入与输出

下一节:二位数组输出_矩阵输出.c

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

5.6 二维数组的输入与输出课程教案、知识点、字幕

大家好

我们接下来看一下

二维数组的输入与输出

其实前面我们在

讨论

二维数组的初始化定义

实际上呢

已经

用到了它的输入和输出

这里边呢

我们为什么还要再接着说它呢

大家一看这个矩阵

就是一个很有意思的矩阵

我们看

以对角线为界

上边的数据是一样的

都是1

下边的数据尽管不一样

但是也是很有意思的

很对称

以斜杠为界

2 3 4 5

也是非常有规律的数据

那这一块我们是想说什么呢

我们生成一个数组的时候

其实

我们是有很多种方式

把数据放在这个数组里的

前边我们讨论的是说

我们可以用scanf给它赋值

我们还可以说把

成批的数据用初始化的方式

给它放进去

那我们

这是在说第三种方式

我要生成一个数组

把数据放进去

是通过它自动的

算法

把数据放到这个数组里边的

每一个元素里

这样

我们就生成了这个数组

当然

我要输出这个数组的时候

跟以前的二维数组没什么

两样

也就是说

两重循环把这个

矩阵输出

就可以了

那么我们先看

怎么生成这个数组呢

看就是说

它的数据的规律

斜杠为界

全是1

那它表达了什么呢

我们拿任意一行看一下

比如说我们拿这一行

这四个1

是怎么

给谁的位置上都是1呢

我们说

讨论数组的问题

有一个关键词

不可以忽略

位置

那么

我们先看这第一个1

它的位置是谁呢

它的位置是不是是

下标为

下标为1的这个行

下标为1的这个列

下标为1的行 1的列

那就是说

行下标和列下标是相等的

那我们再看下一个

行下标没有变

列下标变成2了

行下标没有变

列下标变成3了

列下标变成4了

如果我们数组再大

变成5了 变成6了

往后变

那么

列下标

最小的下标就是跟行下标相等的

那我们

看出来规律了吗

是不是可以说

这四个1是怎么得来的呢

行下标的值是

小于等于

列下标的值

全部赋值的是1

那么

这一行符合这个

条件

每一行

应该都是符合这个条件的

行下标的

小于等于列下标的值

那么就给这个元素里边

自动赋值的是1

那这就程序可以做了

不用我们scanf敲进去

也不用初始化进去啦

下半边是什么样的一个规律呢

尽管不是

1 2

这样的东西

但是是有规律的数据

这个规律我们看一下

先看这个4

怎么得来的呢

4是0 1 2 3

下标为3的这个行上

下标为0的这个列

3行0列的

这个位置上的数据是4

我们再看下边呢

行没有变

行还是

3行1列 3行2列

如果

数组大

那是3行3列 3行4列

往后数了

那现在

大家看

这个符合什么条件呢

行下标

一定是大于列下标的

行下标这个3一定是比

后边的列下标要大的

这样

每一个上面

也符合了

这样的条件

那么符合了这样的条件

给它赋值的这个4从哪来的呢

我们看

我们这里边的每一个元素

一定是

既与行有关

又与列有关

为什么呢

因为它不是

常量

4 3 2

5 4 3

也就是说

行越大这个数就越大

列越大

那行和列

决定了

这个位置上的一个数据

越往后的数据

列越大

这个数据就越小

也就是说我要的数据越小的时候

我应该把这个列给减掉

所以呢

我们满足了

行下标减列下标

行吗

不行加1

拿一个数据看一下4

行下标是3

减上0

加1得4

那再看这个3

行下标是

4

4

减列下标的是0 1 2

4减2加1

得这个3

也就是说

满足行下标的值

大于列下标的值的时候

我们赋值的是这么一个

表达式计算的结果

那这个思路

就很简单

生成

这个数组

就这件事情里边

形成并输出

这么一个矩阵

生成这个数组

生成a数组

这些数据是自动

被赋值进去的

然后把它输出

那输出

很简单

生成呢

也不麻烦

按我们刚才说的

你只要满足这个条件

咱赋值就是1

你只要满足这个条件

赋值就是

这样的表达式的结果

那我们把这个生成a数组

这件事情的思路

写出来的话是不是说

如果我这个

行下标小于等于列下标的话

就把1送到这个数组里边

否则的话

你就把i-j+1的结果

送进来

当然

我们把这个判断并赋值的事情

要做多少遍呢

要做

用两个循环

内循环

循环从0开始

到什么呢

到5

到小于5

也就到4

从0

到4

5个元素

这是内循环

而外循环从0行

到下标为4的行

一共是5行

在一个两重循环里

生成

做这件事情

做这个判断

这就生成了这个

数组

然后再把它输出

我们来看一下这个程序

我们看一下

这个程序里边

我们给的是10乘10的数组

然后呢大家看

在这里边

满足这个条件

i小于等于j的话

给这个数组元素里边

赋值的是1

是谁

i行j列

否则

赋值的是i-j+1

然后呢

这是

生成这个数组

用两重循环

然后输出这个数组

同样用两重循环

大家注意到输出的时候呢

在内循环结束了以后

一定有一个

换行

就是说当你把一行

做完了的时候

进入下一行的时候

换新的一行

我们来运行一下这个程序

这是我们

看到的这个

以斜杠为界

上边是1

下边是

这样非常对称的

非常好看的一个矩阵

我们大家说

如果是这里边的表达式给的不对

会怎么样呢

比如说我把这个

加号去掉

大家看一下

运行结果会变成什么样子

看上去跟刚才差不多

只是说

这一行全是1了

就差一个1嘛

那如果

我们还把这个再加回去

就是说

如果

你这里边赋值的不一样

比如说我现在

并没有

我给这上面赋值的是

这么一个数

也就是说

当我自动要给这一个

数组里边写数的话

你要写的是什么内容

是靠你这个表达式来确定的

比如说

我这个里边

赋值的是

else里边赋值的

是i+j

大家看出来的

那就是

始终都是

i+j的

这样的一个

结果

那我们

回来

说这件事

生成

这么一个数组

并输出

这是标准的二维数组的

输入和输出

那么这里边用的输入的方式是

自动生成的这个数据

我们还把这个程序回到

原来的这个题目上

那这是

我们刚才讨论的

这个矩阵

里边

它的一个方式

那我们

看一下

这就是

我们刚才看到过的程序

大家下去也可以运行一下

C语言程序设计(上)课程列表:

从问题到C语言程序设计

-1.1 计算机的问题求解方法

--1.1.1--程序设计面向的问题

--1.1.2--关于计算

--1.1.3-1关于算法-算法的特征

--1.1.3-2关于算法——算法的表示

--1.1.3-3关于算法——算法的优化

--1.1.4-1-程序设计方法

--1.1.4-2-程序设计方法

--讨论题:数学模型

-1.1 计算机的问题求解方法--作业

-1.2 C语言与C程序

--1.2.1-1-C概述

--1.2.1-2-C概述

--1.2.2-C初步

--讨论题:运算符

-1.3 C语言处理系统与程序调试运行

--1.3.1C程序如何调试运行

--1.3.2常用C语言处理系统

--1.3.3DEVC++的使用-v1

--1.3.4C语言概貌小程序

--例程

-1.4 程序中的人机交互

--1.4 printf用法

--1.4.2 scanf的用法

--例程

--作业讨论区

数据计算实现与顺序结构程序设计(一)

-2.1 算术运算的C程序实现

--2.1.1 第二章

--2.1.2 C语言算术表达式概念

--2.1.3 算术运算的实现

--2.1.4 整数相除

--2.1.5 输入格式造成的计算错误

--2.1.6 求余运算

--2.1.7 自增自减运算

--2.1.8 复合运算

--fangcheng.c

--fangcheng-1.c

--fangcheng-2.c

--fangcheng-3.c

--fangcheng-4.c

--算术混合运算.c

--讨论题:自增自减符

--讨论题:程序输出结果

--讨论题:程序运行结果

-2.1 算术运算的C程序实现--作业

-2.2 关系运算的C程序实现

--2.2.1 关系比较问题

--2.2.2 C语言关系表达式

--2.2.3关系运算优先级

--2.2.4 用关系运算做判断条件

--2.2.5 程序实例

--2.2.6 字符比较

--bukao.c

--pingshifen-1.c

--panduanzhengshu.c

--pingshifen-2.c

--字符比较.c

--讨论题:比较大小

--讨论题:程序的运行

-2.2 关系运算的C程序实现--作业

-第二周作业--作业

数据计算实现与顺序结构程序设计(二)

-2.3 逻辑运算的C程序实现

--2.3.1 逻辑运算问题~1

--2.3.2 逻辑运算表达式

--2.3.3 如何判断闰年

--2.3.4 逻辑运算优先级

--2.3.5 条件运算符

--计算结合性

--2.3.7 一个简单实例

--闰年.c

--自动购票问题.c

--讨论题:逻辑表达式

-2.3 逻辑运算的C程序实现--作业

-2.4 位运算的C程序实现

--2.4.1 什么是位运算

--2.4.2 位运算有哪些

--2.4.3 位运算怎么用

--讨论题:位运算

-2.5 几种很个别的运算

--2.5 几个很个别的运算

--讨论题

--讨论题

-2.5 几种很个别的运算--作业

-2.6 混合运算及数据类型转换

--2.6 混合运算及数据类型转换

--讨论题:数据类型

-2.7 顺序结构程序实例

--2.7.1 第一个程序:三角形

--Video

--三角形面积.c

--讨论题:工业产值

--讨论题:程序无效结果

-2.7 顺序结构程序实例--作业

选择结构的程序设计

-3.1 程序中的路径选择实现

--3.1.1_1 第三章

--3.1.1_2 神奇的if_else

--打印学生成绩.c

--一元二次方程.c

-3.1 程序中的路径选择实现--作业

-3.2 路径中的再选择——嵌套判断

--3.2.1_1 if语句的嵌套

--3.2.1_2三个数排序1029

--例程

--3.2.2 用户登录检查

--三个数排序_未优化.c

--三个数排序_优化.c

--讨论题:程序改错

-3.2 路径中的再选择——嵌套判断--作业

-3.3 复杂判断问题的C程序设计

--3.3 多级选择

--银行存款.c

--讨论题:多级选择

-3.4 多分支问题的C程序设计

--3.4.1 switch语句表达式

--3.4.2 加减乘除计算

--3.4.3 几类说明

--加减乘除运算.c

--讨论题:关于switch

-3.4 多分支问题的C程序设计--作业

-3.5 GOTO的适当使用

--3.5 GOTO的适当使用

-3.6 选择结构的程序实例

--3.6 程序展示

--计算第几天.c

--存款利息__switch实现.c

--讨论题:输出奇数

--讨论题:计算税金

-3.6 选择结构的程序实例--作业

-第四周作业--作业

循环结构的程序设计(一)

-4.1 需要重复执行的程序

--4.1.1----第四章~1

--4.1.2---while实现先判断后循环~1

--4.1.3----while循环的应用-录入速度~1

--求和.c

--打印学生成绩.c

--统计录入速度.c

--求平均数.c

-4.1 需要重复执行的程序--作业

-4.2 至少要执行一次的循环

--4.2.1至少要执行一次的循环

--4.2.2-do-while循环应用

--成绩录入_do while实现.c

--n的阶乘.c

--字符分类统计.c

--讨论题:关于while

-4.2 至少要执行一次的循环--作业

-4.3 已知循环次数用for语句

--4.3.1--用for语句控制循环次数

--4.3.2--循环的应用-求和

--求和问题.c

--斐波那契数列问题.c

--数列求和.c

--讨论题:循环语句的不同

--讨论题:循环语句

-4.3 已知循环次数用for语句--作业

-4.4 循环控制——简单循环应用

--4.4.1-循环的应用-找数-水仙花数

--4.4.2--循环的应用-求素数

--水仙花数.c

--讨论题:死循环

--讨论题:continue和break

--讨论题:猜数字

-循环结构的程序设计(一)--4.4 循环控制——简单循环应用

循环结构的程序设计(二)

-4.5 循环的嵌套

--4.5.1 循环的嵌套——九九乘法表

--4.5.2 循环的嵌套——打印三角形

--打印九九乘法表.c

--打印实心三角图案.c

--打印空心三角图案.c

--讨论题:程序运行

-4.5 循环的嵌套--作业

-4.6 break与continue

--4.6 循环中断与继续循环——break再讨论

--最大素数.c

--求正数个数及平均数.c

-4.6 break与continue--作业

-4.7 循环的综合应用

--4.7.1 数的排列组合问题

--4.7.2 循环综合应用——穷举算法

--4.7.3 循环综合应用——满足条件的数

--4.7.4 循环综合应用——求最后三位数

--4.7.5 循环综合应用——打印空心图案

--数的排列组合.c

--数的排列组合优化.c

--鸡兔同笼.c

--找满足条件的数.c

--输出14的13次方的最后三位数.c

--打印空心字符.c

--讨论题:打印图形

--讨论题:打印空心图形

--讨论题:计算闰年

-第六周作业

--虚拟实验:循环程序设计实验

-第六周作业--作业

数组(一)

-5.1 同类有序数据处理问题

--5.1.0 数组开篇

--5.1.1 同类有序数据存储问题

--讨论题:下标变量与下标

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

--5.2.1_1 数组的定义~1

--5.2.1_2 数组的初始化

--5.2.2 一维数组的输入输出

--5.2.3 一维数组的应用1--成绩排序(选择法)~2

--5.2.4 一维数组的应用2--Fibonacci数列

--数组定义.c

--数组初始化.c

--输出大于平均值的数.c

--反向输出.c

--选择法_成绩排序.c

--求斐波那契数列前n项.c

--讨论题:对称数

--讨论题:关于'\0'

-5.2 一维数组的定义和引用--作业

-5.3 一维字符串数组

--5.3 一维字符串数组11.24~1

--用函数测试字符串长度.c

--讨论题:编程

-5.4 字符串处理函数

--5.4 字符数组的输入与输出

--字符串反向.c

--字符串函数

--讨论题:程序如何运行

--讨论题:黑色星期五

数组(二)

-5.5 二维数组的定义与使用

--5.5 二维数组定义

--二维数组的定义与初始化.c

-5.6 二维数组的输入输出

--5.6 二维数组的输入与输出

--二位数组输出_矩阵输出.c

--讨论题:随机数据存储

-5.6 二维数组的输入输出--作业

-5.7 二维数组的应用‍

--5.7.1二维数组的应用-转置矩阵

--5.7.2 用一维数组方式引用二维数组元素

--转置矩阵.c

--找二维数组最大数.c

--讨论题:修改程序

--讨论题:关于随机数函数 rand()

-5.8 二维字符数组

--5.8 单词排序

--单词排序.c

--讨论题:回文字符串

-5.8 二维字符数组--作业

-5.9 数组综合应用

--5.9.1 应用1——学生成绩统计

--统计成绩.c

--5.9.2 应用2——删除重复字符

--删除串中的重复字符串

--5.9.3 应用3——统计字符

--5.9_4数组的应用4--矩阵相乘

--统计字符次数.c

--讨论题:洗牌

-本期课程结束语

--end

-第八周编程作业

--虚拟实验:冒泡排序算法程序设计实验

期末复习

-《C语言程序设计(上)》期末复习参考

--html

期末复习答案

-《C语言程序设计(上)》期末复习参考答案

--html

5.6 二维数组的输入与输出笔记与讨论

也许你还感兴趣的课程:

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