当前课程知识点:C语言程序设计(上) >  数组(一) >  5.2 一维数组的定义和引用 >  5.2.2 一维数组的输入输出

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

5.2.2 一维数组的输入输出在线视频

5.2.2 一维数组的输入输出

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

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

5.2.2 一维数组的输入输出课程教案、知识点、字幕

大家好

那我们接下来看一下

一维数组的输入输出

我们看一个例子

这个题目很简单

我们只是为了说明

数组的输入和输出

大家看

在这里边 我们定义的数组是一个N数组

长度是多少呢

长度是一个符号常量给的

是10 10个元素

那在这里边

所有平均数的值

那这个问题是我们首先要

算出来这10个元素

它的求和然后 再求平均

那说 我们在这个循环里边

for里边完成一件事

读这个数组

就是从0开始到<

我们的最大下标是N

<这个N那就是9了

每循环一次 我们给a[i]

读进去一个元素

一共读10个元素

并且给它累加10次

结束这个循环

数组就读完了

然后 也运算完了

求出来它的平均

最后 我们进入下一个循环输出这个数组

列出说在输入这个数组的时候

我们完成两件事

读数组并且计算

而下边输出的时候呢

我们就使用刚才读进来的数据

来做这个运算

那这里边做什么运算呢

我们要去打印所有大于平均数的

那就是要做一个判断

就 拿每一个元素

去跟平均数去比较

如果大于 大于这个数

我们就输出 否则就不输出

把这件事情循环多少次 是个元素

循环10次 从0到9

在这里边做判断

那么 第一个循环

是完成了读书组

第二个循环完成了数组的输出

在输出的过程里边实际上

我们现在使用了这个数组里的元素

那么 题目很简单

但是 我们通过它来说明

数组的 其实我们平常对数组的

一维数组的一个输入就是一个单循环

当然 两位数组的输入

那自然我们后边会讨论

他应该是一个双循环

总而言之 给数组里边放置数据的话

通常是用一个循环来控制的

因为它是多个元素

输出同样也是用循环来控制的

我们来看一下这个程序

大家看一下 我们要对

读这个数组 要输出这个数

我们看 一样

读的数用scanf

输出的数用printf

跟以前没有任何两样

但是所不同的是什么呢

我们要读的时候这个数据

这个变量 写的是一个数组元素

输出的时候也是写了一个数组元素

那这个数组这么大

多大 10个元素

那你本次关注的是哪一个元素呢

靠谁来控制 i

这个i正是我们循环控制变量

那跟输出也是一样的

所以

我们是靠循环控制变量来控制

我本次到底要给那个元素赋值

这里边我们来运行一下它

现在的N是10

我们就要敲10个数

咱改一下 不是10把

我们改成就要4个

那这样的话

我这所有是N的地方全变成4了

我只关注4个元素

那现在就是循环了从0~3

我只关注a0~a3

来运行一下

已经出来了

这是scanf的结果

这是输入完了进行的运算平均分

那这一行

应该是我们输出的那个循环的结果

说 你只有80个份 已经挑选完了

80和90是大于这个平均值的

那这样我们是不是可以说

你要访问哪个元素

是靠一个带下标的变量就可以控制

比如说

我们把这块改成这样

大家看会怎么样呢

大家看 我这样改了以后

这一块出来的

我们现在访问了几个元素呢

第一次 i是0 a[0]

那等第二次i就变成几了

i就变成2了

我访问的是a2 第三个元素

那a[1]和a[3]

我们还能做 a[3]

等a[3]的时候i已经是4了

是4就不满足条件了 循环就不做了

所以 我只访问了两个元素

那这样出来我除以N还合适吗

肯定不合适了 因为你N是4啊

两个元素相加你除以4

肯定得到一个不正确的结果

那我们再看下边

下边我这j++不改的话

那我输出还要输出4个元素

相当于我给输入里边

我只读了给两个元素里边放了数

可是我却要看前4个元素里边都长什么样

看一下

说平均分显然不对了

因为我们刚才说了它除以4

而输出的这个4个元素里边

a0 a2

50 80没有问题

a1 a3是哪个

你没赋值 你却要把它输出

那就是随机数

这是我们前面讨论过的

所以呢 还是一个原则

维护值不能使用

第二个 不能越界使用

这是两个对数组来说永远的规则

如果我们把这里边

任何一个访问 比如说

我的控制

不仅仅是说

偶数个 奇数个 我可以是一个 比如说5

i=i+5

这也是肯定是没有问题的

你要访问任何一个元素的时候

你只要考虑到它的下标就可以了

那么 我们现在回过头来说

对数组的输入输出

它有什么特殊问题 值得讨论

是说数组的输入输出涉及到两个问题

一个问题是说

你会需要对数组中的任意元素

进行独立的访问

比如说我只关心

偶数个 奇数个

比如说我这里边存的是学生的成绩

我抽查一下

我只关心尾号 学号的尾数为8的学生

就说 你只关心任意的一些元素

你可以独立去访问

和简单变量的访问方式是一样的

只不过只要它有规律可循

我们就可以把它放在这样的一个数组里

循环里面

这个循环你可以构建在这里边

用任何增量的方式

任何一个增量表达式的方式

来表示你要访问的

有规律的哪些元素

或者我们最前边的是说

我谁都没有 那就是我吧

数组里的每一个元素都访问了

但是 这么多元素

可以放在一个循环体里边

不同的变量

不同的元素可以放在循环体里边

就是因为它下标可控

所以 我们说这句话

当然 我们也可以

说 这样 构建一个输出

比如说我这里边有3个元素

要3个元素

我可以是8号 0号 5号

我不一定是顺序的

或者是说

我这里边

还可以有一个简单变量b

我下边 还可以有一个

其它的 比如说7号

这个 是说你可以

把这些数组里的任何一个元素

当简单变量一样的去讨论

当然 如果我是4个的话

我这后边 还应该有一个格式跟它对应

这时候我应该再加上一个%d

这样的一个格式跟它对应

这是我们说对数组中任一元素

独立进行访问的一个方式

那还有一个 我们要关心的说

对整个数组的访问

比如说

我们对整个数组的访问

它涉及到什么问题呢

就是你可以对数组里边的每一个元素

进行访问也可以

整体的进行访问

比如说 刚才咱们这个程序里边的这种情况

我输出的是printf的是什么 a[j]

那这里边我关心的是这个

j怎么去控制

关心的是 用的是

下标可控的这么一个

最关键的一个环节

下标可控

所以把数组里的所有的元素

我都可以用一个函数调用语句

放在一个 到循环里边去完成

那还有一种情况 是这样

scanf我用了%s的格式

%s我们大家知道

是一个串

那后边 我就写的是数组的名

那printf里边一样的

我如果用的%s

就写的是数组的名字

那这是对谁呢

对数值型的数组可以吗 不可以

只有对恰型的数组

这个我们要在后边

进行讨论

但是为什么拿到这来说呢

是说 数组的输入输出

和 通常的简单变量的输入输出

有什么不同呢

它的不同就说

它可以对数组里边的

单个元素进行访问

也可以按照单个元素的访问方式

对整个数组进行访问 就是这样的

我在循环里边

按照单个元素的访问方式

从0号一直到它的最大下标

把它访问一个过程

那么靠下标的控制来完成

那也可以说

整体的进行访问 循环没有了

我整个对数组的名

来点它的名子

对数组里的所有的元素就进行了访问

这一个问题我们会在后边 详细讨论

这里边我们只是强调的说

到底你要访问所有的元素还是哪些元素

是用下标来说话的

那我们再看一个例子

那我们期待的结果是什么呢

什么叫反向呢

那显然这个数组里边的

那我现在 要的输出是说

你先把最后一个元素给我输出在这

把第一个元素放在最后 这是我期待的结果

那 对这个结果

我们的程序是不是可以这样写

我初始化这个a数组的时候

我给的是10~50没有问题

挨个送进去

但是我输出的时候

我让这个下标控制变量

我输出的是a[i]

同样 i是循环的控制变量

那i从哪里开始呢

我们给i的初值是5

一开始让它--5再用

那是4 那第一个访问的就是a[4]

那下一次再回过头去呢

有--了i 那不就是3了吗

2 1 0

到0为止 好了

大家是不是看出来了

我通过这个下标

我可以正向的访问 可以反向的访问

可以像我们说+2+1

+5这样的去访问

访问到你想要的任何的一个元素

那这里边我们还是强调一句话

控制下标是最关键的

对数组的输入输出来说

控制下标是最关键的问题

那我们关于数组的输入输出

后边 还会陆续的在我们的

应用例题里边会用到

大家可以继续的关注

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.2.2 一维数组的输入输出笔记与讨论

也许你还感兴趣的课程:

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