《问题的提出》PPT课件

《问题的提出》PPT课件

ID:42063831

大小:299.31 KB

页数:51页

时间:2019-09-07

《问题的提出》PPT课件_第1页
《问题的提出》PPT课件_第2页
《问题的提出》PPT课件_第3页
《问题的提出》PPT课件_第4页
《问题的提出》PPT课件_第5页
资源描述:

《《问题的提出》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章数组6.1问题的提出6.2一维数组6.3二维数组6.4字符串与字符串函数6.1问题的提出第一个问题是:输入100个学生的“C程序设计”课程的成绩,将这100个分数从小到大输出。第二个问题是输入100个学生的“C程序设计”课程的期中和期末成绩,算出总评成绩,总评成绩为“30%×期中成绩+70%×期末成绩”,计算总评成绩的分数段情况。6.2一维数组6.2.1一维数组的定义从概念上来说,数组是一组变量,这组变量应该满足下列条件:(1)具有有相同的名字(2)具有相同的数据类型(3)在存储器中连续存放每个变量称为数组的一个“数组单元”,保存在其中的数据值称为“数组元素”,不论是数组单元,还

2、是数组元素,在不引起混淆的情况下,可以简称为元素。数组对象的整体有一个名称,这个名称表示整个数组。每个数组在使用之前都需要定义。定义数组的语法是:数据类型说明符数组名[数组长度];数据类型说明符是C语言提供的任何一种基本数据类型或构造数据类型。数组名是用户定义的标识符。方括号中的数组长度是一个常量表达式,它表示了数组单元的个数。注意:数组长度只能是常量。例如:intdata[5];说明整型数组a,有5个元素。floatb[10],c[20];说明单精度浮点型数组b,有10个元素;单精度浮点型数组c,有20个元素。charstring[20];说明字符型数组string,有20个元素。注

3、意(1)数组的数据类型定义的是每个数组元素的取值类型。对于一个数组来说,所有数组元素的数据类型应该都是相同的。(2)数组名要符合用户定义字的书写规则,也就是与普通变量一样。(3)在C语言的一个函数中,数组名不能与本函数的其它变量名同名。(4)数组长度不能是变量,也不能是或包含变量的表达式,可以是常量或常量表达式。并且常量表达式应是整型数,不能是小数。程序段一:#defineSize5main(){inta[Size],b[Size+10];/*正确*/…}程序段二:main(){intn=5;intdata[n];/*错误*/……}6.2.2一维数组的引用引用数组单元的一般形式为:数组

4、名[下标]数组下标可以是整型变量或整型表达式,但不能是浮点型的变量或浮点型表达式;并且下标不能大于[数组长度-1],因为超过部分没有被定义过,是不能正确使用的。图。例如:data[4]、data[i+j]、data[i++]都是合法的引用方式。例6.1用数组方式读入5个整数,并求和。/*sumof5interger*/#include"stdio.h"voidmain(){inti,data[5],sum=0;printf("Pleaseenter5integer:");for(i=0;i<5;i++)scanf("%d",&data[i]);for(i=0;i<5;i++)sum

5、=sum+data[i];printf("Sumis%d",sum);}在C语言中只能逐个地使用每个数组单元进行操作,而不能一次引用整个数组。例如,不能用printf(“%d”,data);来代替下面的语句:for(i=0;i<=4;i++)printf("%d",data[i]);因为,C语言规定数组名本身代表数组的首地址。printf(“%u”,data);语句输出的是数组的首地址,而不是数组单元的内容。6.2.3一维数组的初始化初始化是指在数组定义时给数组元素赋予初值。需要注意的是,数组初始化是在编译阶段进行的,而不是在程序开始运行以后,由可执行语句完成的,因此不能将初始化的

6、“=”与赋值号混淆。一维数组初始化的一般形式是:数据类型说明符数组名[数组长度]={数值,数值,...数值};intdata[5]={1,2,3,4,5};注意(1)允许初始化一部分元素,而不是全部。intdata[5]={1,2};(2)初始化数组时,允许省略数组的长度。intdata[]={1,2,3,4,5};与intdata[5]={1,2,3,4,5};是完全等价的。(3)初始化数组时,不能对整个数组初始化。例如,intdata[5]=1;6.2.4程序举例例6.2用数组方式解决Fibonacci数列问题,求出Fibonacci数列的前20项存储在数组中,并将数组内容输出。#

7、include"stdio.h"voidmain(){inti,fib[20]={1,1};/*初始化*/printf("");for(i=2;i<20;i++)fib[i]=fib[i-1]+fib[i-2];for(i=1;i<=20;i++){printf("%10d",fib[i-1]);if(i%5==0)printf("");/*换行,每行输出5个*/}}例6.3输入100个整数,求出最小的数以及第一个最小的数在数组中的下标

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。