C语言chapter5-1.pptVIP

  • 1
  • 0
  • 约2.28千字
  • 约 14页
  • 2018-02-06 发布于河南
  • 举报
C语言chapter5-1

5.1.1 一维数组的引出 声明一维数组 5.1.2 一维数组的特点及引用 2. 一维数组的引用 3. 一维数组的初始化 数组应用 数组应用2 第五章 数组 5.1 一维数组 5.2 字符串 5.3 二维数组和多维数组 回顾已学过的数据类型:整型、字符型、浮点型 特点:不可再分。所以又称基本类型或原子类型。 问题:要处理23个学生的成绩,成绩如何存储? 解决:利用数组来存储。 特点:学生成绩的数据类型一致。 datatype arrayName[size]; 类型说明符 int、char、float … 数组名 常量表达式: 数组大小 int student_score[20]; # define N 20 char emp_codes[N]; 强调:size必须是一个常量表达式。 1. 一维数组的特点 (1) 数组是由相同类型的具有固定个数的元素组成的集合。 因此,在定义数组的表达式中不允许出现变量。 int n=5; int a[n]; (2) 每个数组元素都是一个变量,其类型为数组的类型, 与相同类型的普通变量完全一样。 (3) 数组元素在数组中的序号称为下标。通过数组名和下标 可以唯一地确定每一个元素。 45.3987 0.09 3.2 1.5 存储区 0 1 2 3 下标标明了元素在数组中的位置 数组元素 下标 float a[ 4 ]; (4) 整个数组占用一段连续的内存单元,各元素按下标 顺序存放。 a[3] a[2] a[1] a[0] 存储区 float a[ 4 ] 2000 2004 2008 2012 设内存存放的起始地址为2000. 数组名表示数组的首地址。a代表数组的首地址2000, 也就是a[0]的地址。 数组名[下标] 引用时下标可以是变量或表达式,注意与定义时的区别。 int a[10]; for(i=0;i=9;i++) scanf(“%d”,a[i]); for(i=0;i=9;i++) printf(“%d”,a[i]); 内存 emp_code[0] emp_code[1] emp_code[2] emp_code[3] emp_code[4] 1299 1499 1699 1899 2099 int emp_code[5] = {1299,1499,1699,1899,2099}; emp_code 其他的初始化情况: int arr[10] = {10,9,8,7,6,5,4,3,2,1,0};? //错误!越界了 int arr[10] = {9,8,7,5}; //正确,后面的6个元素未初始化 int arr[] = {9,8,7};? //正确:元素个数为 3 int arr[]={};? //错误,到底是几个元素? long sum_score=0; int student_score[30],average_score; 例题:利用数组来存放学生成绩后,求解30个学生的平均成绩,可以采用下面的程序段: for(i=0;i30;i++) scanf(“%d”,student_score[i]); for(i=0;i30;i++) sum_score=sum_score+student_score[i]; average_score=sum_score/30; … … 问题描述: 求5个整数中的最大值和最小值 。 void main() { int num[5],max,min,i; printf(请输入5个数:\n); for(i=0;i5;i++) scanf(%d,num[i]); max=num[0]; min=num[0]; for(i=1;i5;i++) { if (num[i]max) max=num[i]; if (num[i]min) min=num[i]; } printf(\n最大值为:%d,max); printf(\n最小值为:%d\n,min); } 读入5个值保存在数组中 求最大值和最小值 问题描述: 输入10个数,保存在一个数组中,在数组中查找某个数,给出是否找到的信息。如果找到了,要求输出该数在数组中所处的位置;如果找不到,输出“没有找到!”。 #define N 10 …… for(i=0;iN;i++) scanf(%d,num[i]); printf(\n 请输入要查找的数:); scanf(%d,sh); for (i=0;iN;i++

文档评论(0)

1亿VIP精品文档

相关文档