《C语言程序设计》课件-项目7:数组_第1页
《C语言程序设计》课件-项目7:数组_第2页
《C语言程序设计》课件-项目7:数组_第3页
《C语言程序设计》课件-项目7:数组_第4页
《C语言程序设计》课件-项目7:数组_第5页
已阅读5页,还剩29页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计一维数组的定义CONTENTS01一维数组的定义02样例分析目录一维数组的定义问题提出:输入全班40位同学的成绩,输出每位同学的成绩及该成绩与平均成绩之差。解题分析:

1、输入成绩,计算总分

2、求出平均值

3、输出每位同学成绩及该成绩与平均成绩之差难点:需要保存40个原始数据!解决办法:使用数组一维数组的定义数组是相同数据类型的有序数据的集合。一维数组定义的一般形式为:类型名数组名[常量表达式];例如:

inta[100];注意:该语句相当于定义了100个整数变量,分别为:

a[0]a[1]a[2]...a[99]intmain(){inta[100];intx;a[23]=9;a[24]=7;a[25]=8;x=a[23]+a[25];printf("x=%d\n",x);return0;}一维数组的定义【样例分析】如下程序错在哪?#include<stdio.h>intmain(){inta[10];inti,sum=0;printf("请输入10个整数\n");for(i=1;i<=10;i++){scanf("%d",&a[i]);sum+=a[i];}printf("总和为:%d\n",sum);return0;}样例分析【样例】输入小组7位同学的成绩,输出每位同学的成绩及该成绩与本组平均成绩之差。#include<stdio.h>intmain(){doublea[100],sum=0.0,ver;inti;printf("请输入7个成绩\n");for(i=1;i<=7;i++){scanf("%lf",&a[i]);sum+=a[i];}ver=sum/7.0;for(i=1;i<=7;i++)printf("%lf%lf\n",a[i],a[i]-ver);return0;}C语言程序设计一维数组的使用CONTENTS01一维数组的使用目录一维数组的使用【样例】:输入10个整数,求总和、最大值、最小值步骤:

1、定义相关变量

2、输入整数,保存在数组中a[1]a[2]…a[10]3、分别求出总和、最大值、最小值

4、输出一维数组的使用【样例】:输入10个整数,求总和、最大值、最小值求总和方法:

sum=0;

sum=sum+a[1];sum=sum+a[2];….

sum=sum+a[10]改为循环语句inti;for(i=1;i<=10;i++)sum+=a[i];一维数组的使用【样例】:输入10个整数,求总和、最大值、最小值求最大值方法:

max先等于a[1]a[2]与max比较,如果a[2]大,则max=a[2]

a[3]与max比较,如果a[3]大,则max=a[3]….

a[10]与max比较,如果a[10]大,则max=a[10]改为循环语句max=a[1];for(i=2;i<=10;i++)if(a[i]>max)max=a[i];最小值的求法类似!一维数组的使用【样例】:输入10个整数,求总和、最大值、最小值代码如下:#include<stdio.h>intmain(){inti,max,min,sum=0;inta[100];printf("请输入10整数\n");for(i=1;i<=10;i++){scanf("%d",&a[i]);}

for(i=1;i<=10;i++)sum+=a[i];max=a[1];for(i=2;i<=10;i++)if(a[i]>max)max=a[i];min=a[1];for(i=2;i<=10;i++)if(a[i]<min)min=a[i];printf("sum=%d,max=%d,min=%d\n",sum,max,min);return0;}C语言程序设计用数组法求解裴波那契数列的第n项CONTENTS01Fibonacci数列02数组的定义目录03利用数组求Fibonacci数列第n项Fibonacci数列Fibonacci数列112358….Fibonacci数列问题:输入n,输出Fibonacci数列的第n项112358….数组的定义数组的定义intdata[100];该语句定义了100个整数变量,分别是:

data[0]data[1]data[2]…data[99]利用数组求Fibonacci数列第n项Fibonacci数列问题:输入n,输出Fibonacci数列的第n项112358….参考代码C语言程序设计二维数组CONTENTS01二维数组的定义与初始化02二维数组的使用目录二维数组的定义与初始化二维数组的定义方式与一维数组类似,其语法格式如下:

类型说明符数组名[常量表达式1][常量表达式2];行下标列下标二维数组的定义与初始化完成二维数组的定义后,需要对二维数组进行初始化,初始化二维数组的方式有四种,具体如下:第1种按行给二维数组赋初值inta[2][3]={{1,2,3},{4,5,6}};第2种将所有的数组元素按行顺序写在一个大括号内inta[2][3]={1,2,3,4,5,6};第3种对部分数组元素赋初值intb[3][4]={{1},{4,3},{2,1,2}};第4种对全部数组元素置初值,则第一个下标可省略inta[][3]={1,2,3,4,5,6};二维数组的引用二维数组的引用方式同一维数组的引用方式一样,也是通过数组名和下标的方式来引用数组元素,其语法格式如下:数组名[下标][下标];二维数组的使用【样例1】使用scanf读入一个3行4列的矩阵,要求编写程序

输出其中值最大的那个元素,以及其所在的行号和列号。#include<stdio.h>intmain(){inta[3][4];inti,j,max,row,col;printf("请输入一个3行4列的矩阵到二维数组中\n");for(i=0;i<3;i++){printf("请输入第%d行:",i);for(j=0;j<4;j++){scanf("%d",&a[i][j]);}}max=a[0][0];for(i=0;i<3;i++)for(j=0;j<4;j++){if(a[i][j]>max){

max=a[i][j];

row=i;

col=j;}

}printf("最大的元素是%d,它在第%d行第%d列\n",max,row,col);

return0;}

二维数组的使用【样例2】有一个二维数组inta[2][3]={{5,8,19},{67,8,78}};

将这个二维数组行列元素互换,存到另一个数组后输出。#include<stdio.h>intmain(){inta[2][3]={{5,8,9},{6,7,8}};intb[3][2];inti,j;printf("原二维数组a是输出如下:\n");for(i=0;i<=1;i++){for(j=0;j<=2;j++){printf("%5d",a[i][j]);b[j][i]=a[i][j];}printf("\n");}printf("行列互换,复制到二维数组b之后:\n");for(i=0;i<=2;i++){for(j=0;j<=1;j++){printf("%5d",b[i][j]);}printf("\n");}return0;}C语言程序设计数组作为函数的参数汇报人:陈文CONTENTS01数组元素作为参数02整个数组作为参数目录数组元素作为参数

数组元素就是用数组名及下标表示,本质上,它与普通变量并无区别。因此将数组元素作为函数实参使用与普通变量是完全相同的。如:数组元素作为参数分析:

1、编写判断x是否为质数的函数pd(x),是质数,则返回1,否则返回0

2、数组data1中的元素,逐一取出调用pd函数。样例1:含有n1个元素数组data1,问有多少个质数?整个数组作为参数样例2:含有n1个元素数组data1,含有n2个元素数组data2,问它们分别有多少个质数?整个数组作为参数样例3:含有n1个元素数组data1,含有n2个元素数组data2,问它们分别有多少个质数?要求:将数组作为参数,传给caculate()函数整个数组作为参数注意:

1、数组名就是数组的首地址。因此在数组名作函数参数时所进行的传送只是地址值的传送,形参与实参指向了同一个地址。

2、形参与实参写法不同。实参直接用数组名。而形参则要使用:

数组

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论