苏州科技大学电子与信息工程学院程序设计及C语言(进阶篇)课件 第六章.pptVIP

  • 5
  • 0
  • 约6.99千字
  • 约 40页
  • 2019-05-14 发布于广东
  • 举报

苏州科技大学电子与信息工程学院程序设计及C语言(进阶篇)课件 第六章.ppt

C语言程序设计 —进阶篇 第6章 数组(2) 内容概述 1.二维数组的定义、初始化、在计算机中的存储及其使用方法。 2.字符串的输入输出操作及常用的字符串操作函数。 3.一维数组的应用,包括排序、查找、单词统计、求子串等,二维数组的应用。 教学目标 1.掌握二维数组的定义、初始化及其使用方法。 2.了解二维数组在计算机中的存储结构并对数据进行存储和管理。 3.掌握字符串的输入输出方法,熟悉常用的字符串操作函数。 4.学会使用数组解决实际问题的基本方法,能用一维数组和二维数组解决简单的实际问题。 在一维线性内存空间中,如何在一维存储器中存放二维数组?一种是按行排列, 即放完一行之后顺次放入第二行。另一种是按列排列, 即放完一列之后再顺次放入第二列。在C语言中,二维数组是按行排列的。 上例中先存放a[0]行,再存放a[1]行,最后存放a[2]行。 6.1.2 二维数组元素的引用 二维数组的元素也称为双下标变量,其表示的形式为: 数组名[下标][下标] 其中下标应为整型常量或整型表达式。 【例6.1】一个学习小组有5个人,每个人有三门课的考试成绩。求全组分科的平均成绩和各科总平均成绩。 main() { int i,j,s=0,average,v[3],a[5][3]; printf(input score\n); for(i=0;i3;i++) { for(j=0;j5;j++) { scanf(%d,a[j][i]); s=s+a[j][i]; } v[i]=s/5; s=0; } average =(v[0]+v[1]+v[2])/3; printf(math:%d\nc languag:%d\ndbase:%d\n,v[0],v[1],v[2]); printf(total:%d\n, average ); } 6.1.3 二维数组的初始化 (1)按行分段赋值可写为: int a[5][3]={ {80,75,92},{61,65,71}, {59,63,70},{85,87,90},{76,77,85} }; (2)按行连续赋值可写为: int a[5][3]={ 80,75,92,61,65,71, 59,63,70,85,87,90,76,77,85}; 这两种赋初值的结果是完全相同的。 【例6.2】 main() { int i,j,s=0, average,v[3]; int a[5][3]={{80,75,92},{61,65,71}, {59,63,70},{85,87,90},{76,77,85}}; for(i=0;i3;i++) { for(j=0;j5;j++) s=s+a[j][i]; v[i]=s/5; s=0; } average=(v[0]+v[1]+v[2])/3; printf(math:%d\nc languag:%d\ndFoxpro:%d\n, v[0],v[1],v[2]); printf(total:%d\n, average); } 对于二维数组初始化赋值还有以下说明: (1)可以只对部分元素赋初值,未赋初值的元素自动取0值。 例如: int a[3][3]={{1},{2},{3}}; (2)如对全部元素赋初值,则第一维的长度可以不给出。 例如: int a[3][3]={1,2,3,4,5,6,7,8,9}; 可以写为: int a[][3]={1,2,3,4,5,6,7,8,9}; (3)数组是一种构造类型的数据 6.2.1 字符数组的定义 用来存放字符量的数组称为字符数组。形式与前面介绍的数值型数组相同。例如: char c[10]; 由于字符型和整型通用,也可以定义为int c[10]但这时每个数组元素占2个字节的内存单元。 字符数组也可以是二维或多维数组。例如: char c[5][10]; 即为二维字符数组。 6.2.2 字符数组的初始化 字符数组也允许在定义时作初始化赋值。例如: char c[10]={‘c’, ‘ ’, ‘p’, ‘r’, ‘o’, ‘g’, ‘r’, ‘a’,’m’}; 赋值后各元素的值为: c[0]的值为‘c’ c[1]的值为‘ ’ c[2]的值为‘p’ c[3]的值为‘r’ c[4]的值为‘0’ c[5]的值为

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档