- 1、本文档共155页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch6数组、函数和指针解读
第6章 数组、函数和指针
一、数 组
数组
问题的引出:
实际应用的程序设计中,只用几个变量的情况是极少的;更多的情况是处理大批量的相同类型或不同类型的数据。
相同类型数据举例:
统计交大1500学生英语4级统考成绩;
不同类型数据举例:
管理交大1500学生学籍信息记录,包括:姓名、学号、出生日期、班级、各科成绩等。
3
用什么样的数据结构来描述这类应用更简洁?
数组
数组:
具有相同数据类型的变量集合。集合中各数据的排列具有一定的规律。
数组中的各数据必须具有相同的数据类型,用下标代表数据在数组中的序号。
数组中的数据也称为元素,它们具有相同的名字,但具有不同的下标。
这些元素称为数组元素,各元素通过下标区分。
4
一维数组
多维数组
1. 一维数组
特点:
每个元素只有一个下标
程序中使用数组时,必须先定义
5
例如: int array[10];
1) 一维数组定义
一维数组的定义格式:
类型名 数组名 [常量表达式]
例如: int a[10];
说明:
方括弧括中的下标表示元素在数组中的位置。
C语言的下标从0开始,必须是常量或符号常量,不能是变量。
例如:以下语句非法
int n;
scanf(“%d”,n);
int array[n];
数组在内存中存储时,是按下标递增的顺序连续存储各元素的值的。
6
一维数组的定义
说明:
数组名的命名规则和变量名相同,遵循标识符命名规则。
定义数组时需要在方括号中用常量表达式指定数组中的元素个数,即数组长度。
在被调用函数中定义数组时,其长度可以是变量或变量表达式,此时的变量可以通过参数传递获取。每次调用时可以传递不同的变量值,称为“可变长数组”。
例:
void func(int n)
{
int array[n];
……
}
7
2) 一维数组的引用和初始化
一维数组的初始化
在定义数组时对数组元素赋以初值。
int data[5]={0,1,2,3,4}
可以只给数组中部分元素赋初值。
int data[5]={,4,,8,}
可通过循环语句为数组赋值。
数组中元素的引用形式:
数组名 [下标]
8
一维数组 例1:
定义一个含10个元素的整型数组,依次为其赋值0,1,2…9,并按逆序输出。
题目分析:
需要先定义一个长度为10的整型数组;
元素值很有规律,可通过循环对其赋初值;
输出时先输出最后一个元素,即按下标从大到小循环输出。
9
#includestdio.h
int main()
{
int a[10],i;
for (i = 0; i = 9; i++)
a[i] = i;
for (i = 9; i=0; i--)
printf(%d ,a[i]);
printf(\n);
return 0;
}
10
9 8 7 6 5 4 3 2 1 0
请按任意键继续…
一维数组例2:
找出数组中的最大数
题目分析:
定义一个数组a,以及存放最大数的变量max;
定义计数变量i(也是数组长度值),并设i=0;
令max=a[i](即:假设数组中第1个元素最大) ;
将a[i](0= i n)与max进行比较:
若a[i] max ,i=i+1,再执行3
否则,令max=a[i],i=i+1,再执行3
循环结束,求出最大元素并输出max。
11
#include stdio.h
int main()
{
int a[7],i,j,max;
printf(Please input an array with seven elements: \n);
for(i=0; i7; i++)
scanf(“%d”,a[i]);
max = a[0];
for(j=0; j7; j++)
{
if(a[j]max)
max = a[j];
}
printf(max=%d\n,max);
return 0;
}
12
用数组求解Fibonacci问题。
题目分析:
每个数组元素代表数列中的一个数,依次求出各数并存于数组中。
数组中元素存放于内存,若按普通方法求解,数列中的各值将不会存于内存。
13
一维数组例3:
#includestdio.h
int main()
{
int F[28] = { 1, 1 }, i;
for (i =2; i = 27; i++)
F[i] =F[i-1]+F[i-2];
for (i = 0; i = 27; i++)
{
if (i % 5 == 0)
printf(\n);
pr
文档评论(0)