济南大学c语言输出图形,C语言-济南大学4.pdf

第四章 数 组

【教学目的】

掌握一维数组的定义、初始化和引用。

掌握二维数组的定义、初始化和引用。

掌握字符数组的定义、初始化和引用。

【教学内容】

如何定义一维、二维数组,正确理解数组的存储形式,在什么样的实际问题中该使用数

组结构。

正确引用数组元素,理解下标所代表的含义,掌握数组和循环的结合使用。

字符数组的初始化、输入与输出,字符数组的应用。

【教学重点和难点】

定义数组,正确理解数组名代表数组的首地址,通过数组名(首地址)结合下标,可以

任意访问数组中的任一元素。

字符串处理函数的使用,特别是函数参数的正确使用。

【问题的提出】

在介绍数组的使用之前,首先看一个例子。

【例】将从键盘输入的20 个数逆序输出。

根据前面所学的方法,可得程序如下:

#include "stdio.h"

main ( )

{float a1,a2,a3,a4,a5,……,a19,a20; /* 定义 20 个变量 */

printf ("请输入 20 个实数: ");

scanf ("%f",&a1); /* 连续 20 个输入函数语句 */

scanf ("%f",&a2);

……

scanf ("%f",&a20);

printf ("反序输出为: ",);

printf ("%f ",a20); /*连续 20 个输出函数语句 */

printf ("%f ",a19);

……

printf("%f ",a1);

}

分析:这样的程序是无法接受的,因为基本数据类型,它们通常用于解决一些简单的问

题,输入和输出的数据也是少量的。若输入的数据增加到 2000 个,在一个程序中要保存 2000

个实型数据需要定义 2000 个变量,若在各类计算机语言中仅有简单变量,是没有办法解决复

杂问题的。

试问:要存放大量类型相同的数据,该如何处理?程序如何写?如在数学问题中有一个

10 行 10 列的矩阵,该怎样存储?有 50 个字符串又该如何处理?

方法:为了解决复杂问题,C 语言中提供了构造类型的数据,本章中将介绍用数组解决

这些问题的方法。

【教学要点】

1. 一维数组的定义、初始化和引用

【例 4.1 】由键盘输入20 个数,逆序输出。

分析:在程序设计中,数组是十分有用的数据类型,是一组具有相同类型的变量,用一

个数组名标识,其中每个变量(称为数组元素)通过该变量在数组中的相对位置(称为下标)来引

用。要引用每个数组元素需要使用循环结构控制元素的下标,本程序采用数组和循环相结合,

不仅书写简洁,而且通用性强。若输入的数据个数不是 20 ,而是2000 ,所做的工作只是把符

号常量 N 的值改为2000 而已。

源程序如下:

#define N 20 /* 定义符号常量 N 为 20 */

#include "stdio.h"

main ( )

{ int a[N], k; /*定义 a 数组,长度为 20 ;数组要先定义后引用*/

printf(“input %d data:”,N);

for ( k=0; k

scanf ("%d",&a[k]);

/*数组元素的下标从 0 开始,最后一个元素的下标为 N-1 ,通过 for()循环实现依次的变

化*/

for ( k=N-1; k>=0; k-- ) /* 数组最后一个元素的下标是 N-1 */

printf ("%d ",a[k]);

}

【例 4.2 】求Fibonacci 数列前 15 个数。这个数列有如下特点:第 1,2 两个数为 0,1。

从第 3 个数开始,该数是其前面两个连续数之和,即 a[i]=a[i-1]+a[i-2] 。

分析:15个数用一个一维数组a 来处理,该数组最少可以存储 15个数。已知a[0]=0, a[1]=1 ;

后 13 个数用一重 for()循环求出。

源程序如下:

main()

{ int a[15]={0,1}; /*定义 a 数组同时赋初始值,使

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值