5. 2二维数组的应用(课件)-《 C语言程序设计》同步教学(电子工业出版社)

2024-08-11
| 32页
| 61人阅读
| 10人下载
普通

内容正文:

第五章 批量数据的存储--数组 1 CONTENTS 目录 01 02 一位数组的应用 数组的认知 03 二维数组的应用 04 字符串与字符数组 05 字符串处理函数 C语言 知识树 My First Template 二维数组的应用 C语言程序设计 4 C语言 二维数组的应用 应用中的问题 My First Template 本次任务 利用二维数组存储多个学生的多门成绩,并求每门课平均成绩,和总平均成绩。 C语言程序设计 二维数组的定义与引用 C语言 My First Template 二维数组的应用 C语言 存储某一门课的成绩可以使用一维数组,同时存储多门课的成绩,其实就是存储一个二维的表格,C语言中用二维数组来存储二维表的值 任务分析 My First Template C语言 二维数组定义的一般形式是: 类型说明符 数组名[常量表达式1][常量表达式2] 其中:常量表达式1表示第一维下标的长度, 常量表达式2 表示第二维下标的长度。 二维数组的应用 例如: int a[3][4]; 说明了一个三行四列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有3×4个, 即: a[0][0],a[0][1],a[0][2],a[0][3] a[1][0],a[1][1],a[1][2],a[1][3] a[2][0],a[2][1],a[2][2],a[2][3] 二维数组的声明 My First Template C语言程序设计 二维数组的定义与引用 C语言 二维数组初始化也是在类型说明时给各下标变量赋以初值。二维数组可按行分段赋值(逐行),也可按行连续赋值(整体)。 二维数组的初始化 My First Template 逐行赋值 int a[2][3]={ {80,70,90},{60,65,70 }; 整体赋值 int a[2][3]={ 80,70,90,60,65,70}; C语言程序设计 二维数组的定义与引用 C语言 二维数组的元素也称为双下标变量,其表示的形式为: 数组名[下标][下标] 其中下标应为整型常量或整型表达式。 例如:a[2][3] 表示a数组2行3列的元素 二维数组的引用 My First Template C语言程序设计 二维数组的定义与引用 C语言 任务实现 #include "stdio.h" void 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;i<3;i++) { for(j=0;j<5;j++) s=s+a[j][i]; v[i]=s/5; s=0; } average=(v[0]+v[1]+v[2])/3; printf("C语言平均分:%d 数据库平均分:%d 网络基础平均分:%d ",v[0],v[1],v[2]); printf("总平均分:%d ", average); } My First Template 字符串与字符数组 C语言程序设计 12 C语言 可以存储的数据 计算机内存 常量值 变量值 变量名 常量名 内存 score[3] score[2] score[1] score[0] score 80 65 99 73 数组名 C语言程序设计 –字符串与字符数组 My First Template C语言 本次任务 输入一个字符串,统计其中空格的个数。 C语言程序设计 –字符串与字符数组 My First Template C语言 任务分析 字符串与字符数组-任务分析 My First Template 输入字符串统计空格 存储字符 存储字符串 字符串输入 空格统计 完成任务 输入字符串统计空格 字符变量 字符数组 输入函数 特殊标记 … C语言 字符串 char a='W'; char b='a'; char c='n'; char d='g'; char e='L'; char f='i'; 如何让程序存储我的姓名? Wang Li 用若干个字符 char name[15]={ 'W', 'a', 'n', 'g', 'L', 'i', '\0'}; 用字符数组 用字符串 W a n g L i \0 在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。 字符串的末尾有一个空字符‘\0’ 数 组 数组:是一种数据类型,在一块连续的地址空间内存储相同类型的多个值。 字符串与字符数组-相关知识 My First Template C语言 形式与前面介绍的数值数组相同。 例如: char c[10]; 字符数组也可以是二维维数组。 例如: char c[5][10]; 字符数组的声明 char arrayName[size]; 类型说明符 char 数组名符合 标识符规则 常量表达式: 数组大小 字符串与字符数组-相关知识 My First Template C语言 字符数组的初始化 将字符串“c program”赋值给字符数组c。 逐一元素赋值 例如:char c[10];c[0]='c' ; c[1]='p' ; ……c[8]='m'; 定义时作初始化赋值 例如:char c[10]={'c',' ','p','r','o','g','r','a','m'}; 当对全体元素赋初值时也可以省去长度说明 例如: char c[]={'c',' ','p','r','o','g','r','a','m'}; C语言允许用字符串的方式对数组作初始化赋值。 可写为: char c[]={“c program"}; 或去掉{}写为: char c[]=“c program"; 字符串以‘\0 ’作为串的结束符 。 用字符串方式赋值比用字符逐个赋值要多占一个字节, 用于存放字符串结束标志' \0 ' 。' \0'是由C编译系统自动加上的。 由于采用了' \0'标志,所以在用字符串赋初值时一般无须指定数组的长度, 而由系统自行处理 字符结束符 字符串与字符数组-相关知识 My First Template C语言 1、数组必须先定义,后使用 2、数组元素表示形式: 数组名[下标] 其中:下标可以是常量或整型表达式 3、数组的引用不能越界 4、只能逐个引用数组元素,不能一次引用整个数组(字符这条不成立)。 字符数组的引用 #include "stdio.h" main() { char st[15]; printf("请输入要存储到字符数组中的值: "); scanf("%s",st); printf("字符数组中的值是 %s ",st); } 案例 c p r o g r a m c[0] c[1] c[2] c[3] c[4] c[5] c[6] c[7] c[8] 字符串与字符数组-相关知识 My First Template C语言 字符数组的输入 #include "stdio.h" main() { char st[15]; printf("请输入要存储到字符数组中的值: "); scanf("%s",st); printf("字符数组中的值是 %s ",st); } 案例 输入连续的值 输入带空格的值 注意:当用scanf函数输入字符串时,串中不能含有空格,否则将以空格作为串的结束符。 字符串与字符数组-相关知识 My First Template C语言 char name[10]; scanf("%s", name); printf("%s", name); 格式描述串中使用转换字符串“%s” Wang Li W a n g \0 使用 scanf 时,不能输入空格 Wang 标准的I/O函数 字符串与字符数组-相关知识 My First Template C语言 char name[10]; gets(name); puts(name); W a n g L i \0 Wang Li Wang Li 从键盘上读入一个完整的行,存入字符数组name。并用空字符'\0'取代行尾的换行符' '。 把字符数组中的字符串输出到显示器。 使用 gets函数允许输入空格 字符串的I/O函数 字符串与字符数组-相关知识 My First Template C语言 #include <stdio.h> void main() { char line[30]; int i,count = 0; printf(" 请输入一行字符: "); gets(line); i=0; while(line[i] != '\0') { if(line[i] == ' ') count++; i++; } printf(" 其中的空格总数为 %d ",count); } C is a programming language 在循环执行时,扫描整个数组以统计出空格 ‘ ‘ 的数量,直到遇到字符 ’\0’。每次循环执行时,都会更新计数器 i 和 count。 其中的空格总数为 4 任务实现 字符串与字符数组-任务实现 My First Template 字符串处理函数 C语言程序设计 24 C语言 字符串处理函数 字符串处理函数 与字符串有关的内置函数在头文件string.h中定义 要使用标准库字符串处理函数,程序前应该包含: #include <string.h> string.h strlen strcpy strcmp strcat …… puts gets My First Template C语言 puts函数 字符串处理函数 格式:puts (字符数组名) 功能:把字符数组中的字符串输出到显示器上。 puts //预处理 #include "stdio.h" void main()//主函数 { //定义字符数组并赋值 char c[]="i love china!"; //字符数组的输出 puts(c); } My First Template C语言 gets函数 字符串处理函数 格式: gets (字符数组名) 功能:从终端上输入一个字符串到字符数组。本函数得到一个函数值,即为该字符数组的首地址。gets()函数允许输入空格,当输入的字符串含有空格时不被截断。 到显示器上。 gets #include"stdio.h"//预处理输入输出 void main()//主函数 { //定义字符数组 char st[15]; printf("请输入字符: "); //获取字符串 gets(st); //输出字符数组 puts(st); } My First Template C语言 Strlen函数 字符串处理函数 格式:strlen(字符数组名) 功能:测字符串的实际长度(不含字符串结束标志‘\0’) 并作为函数返回值。 strlen //包含标准输入输出和字符串头文件 #include "stdio.h" #include"string.h" void main()//主函数 { //变量定义 int k; //数组定义与赋值 static char st[]="I love C language"; //测试长度 k=strlen(st); //结果输出 printf("该字符串的长度为 %d ",k); } My First Template C语言 Strcat函数 字符串处理函数 格式:strcat (目标字符数组,源字符数组) 功能:把源字符数组中的字符串连接到目标字符数组的后面,并删去目标字符数组后的 '\0'。本函数返回值是字符目标数组的首地址。 strcat //导入输入输出和字符头文件 #include "stdio.h" #include"string.h" void main()//主函数 { //字符数组定义与赋值 char st1[30]="My name is "; char st2[10]; printf("请输入你的英文名字: "); gets(st2); //使用连接函数进行字符串的连接 strcat(st1,st2); //字符串的输出 puts(st1); } My First Template C语言 Strcpy函数 字符串处理函数 格式: strcpy (目标字符数组,源字符数组) 功能:把源字符数组中的字符串拷贝到目标字符数组中。'\0'也一同拷贝。源字符数组可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。 strcpy #include "stdio.h" #include"string.h" void main()//主函数 {//数组定义赋值 char st1[18],st2[]="I love C Language"; printf("输出字符串st2:"); puts(st2); printf(" 通过 strcpy(st1,st2)函数将字符串st2复制到st1 "); //使用 strcpy函数进行数组复制 strcpy(st1,st2); printf("输出字符串st2:"); //字符数组输出 puts(st1);printf(" "); } My First Template C语言 Strcmp函数 字符串处理函数 格式:strcmp(字符数组1,字符数组2) 功能:按照ASCII码顺序比较两个数组中的字符串,由函数返回值返回比较结果。如果两个字符串相等则返回0;字符数组1>字符数组2则返回正数,否则返回负数。 本函数也可用于比较两个字符串常量,或比较字符数组和字符串常量。 strcmp #include "stdio.h"//预处理输入输出 #include"string.h"//预处理字符串函数 void main()//主函数 { int k; char st1[15],st2[]="abcdef"; printf("请输入字符串: "); gets(st1);//给字符数组st1赋值 k=strcmp(st1,st2);//使用比较函数 printf("%d ",k); //如果得到0则相等,1 st1>st2 if(k==0) printf("st1=st2 "); if(k>0) printf("st1>st2 "); if(k<0) printf("st1<st2 "); } My First Template C语言 Strlwr和strupr函数 字符串处理函数 格式:strlwr(字符串) 功能:将字符串中大写字母转为小写。 格式:strupr(字符串) 功能:将字符串中小写字母转为大写。 strxxx #include "stdio.h"//预处理输入输出 #include"string.h"//预处理字符串函数 void main()//主函数 { int k; char st1[15]; printf("请输入字符串: "); gets(st1);//给字符数组st1赋值 puts(strupr(st1)); } My First Template $$

资源预览图

5. 2二维数组的应用(课件)-《 C语言程序设计》同步教学(电子工业出版社)
1
5. 2二维数组的应用(课件)-《 C语言程序设计》同步教学(电子工业出版社)
2
5. 2二维数组的应用(课件)-《 C语言程序设计》同步教学(电子工业出版社)
3
5. 2二维数组的应用(课件)-《 C语言程序设计》同步教学(电子工业出版社)
4
5. 2二维数组的应用(课件)-《 C语言程序设计》同步教学(电子工业出版社)
5
5. 2二维数组的应用(课件)-《 C语言程序设计》同步教学(电子工业出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。