




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作学习目标学习目标:3 1掌握二维数组的使用掌握二维数组的使用2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3二维数组二维数组3数学概念矩阵:数学概念矩阵:90 80 70 9997 83 92 6591 85 88 76例:例:2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3二维数组二维数组3日常生活例日常生活例子表格:子表格:12345
2、6789101112131415162022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3二维数组二维数组3特点:特点: 按行、列分布,并且每个数据需要由两按行、列分布,并且每个数据需要由两个位置确定:个位置确定: 一个行位置,一个列位置一个行位置,一个列位置C语言中实现方法:语言中实现方法:二维数组二维数组2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3二维数组二维数组3在在C语言中如何实现语言中如何实现?类型类型 数组名数组名 行长度行长度列长度列长度int array 34例:例:float d 35; int
3、 a66; char s410;所有元素都是所有元素都是int数组名数组名3行行4列列注意:必须是常量注意:必须是常量array 2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3二维数组二维数组3二维数组的引用二维数组的引用123456789 10 11 127第第1行行第第2列列数组数组aa1 2数组名数组名行下标行下标列下标列下标 2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3二维数组二维数组3二维数组初始化:二维数组初始化:在定义二维数组时,给元素赋初值在定义二维数组时,给元素赋初值形式形式1: int
4、 a23=1,2,3,4,5,6; 形式形式2: int a23=1,2,3,4,5,6; 形式形式3: int a 3=1,2,3,4,5,6; 形式形式4: int a2=1,2,3,4,5,6; 错误!错误!2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3二维数组操作二维数组操作4二维数组元素的引用及基本操作二维数组元素的引用及基本操作1. 数组的赋值数组的赋值 for (i=0; iROWS; i+) for (j=0; jCOLS; j+) valueij = i+j; 2. 数组的输入数组的输入 for (i=0; iROWS; i+) f
5、or (j=0; jCOLS; j+) scanf(“%d”, &valueij);#define ROWS 4#define COLS 5int value ROWSCOLS; 2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3二维数组操作二维数组操作4二维数组元素的引用及基本操作二维数组元素的引用及基本操作3. 数组的输出数组的输出 for (i=0; iROWS; i+) for (j=0; jCOLS; j+) printf(“%4d”, valueij); putchar(n); #define ROWS 4#define COLS 5
6、int value ROWSCOLS; 2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3二维数组操作二维数组操作4例题:从键盘输入如下的矩阵例题:从键盘输入如下的矩阵1 2 4 5 1 2 4 5 3 4 5 73 4 5 75 7 9 85 7 9 8然后输出该矩阵然后输出该矩阵2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作lessson11_01.c#include int main()int a34,i,j;for(i=0;i3;i+)for(j=0;j4;j+)scanf(%d,&aij);fo
7、r(i=0;i3;i+)for(j=0;j4;j+)printf(%4d,aij);printf(n); return 0;2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3二维数组应用二维数组应用5例6: 判断给定方阵是否为对称矩阵。 1102188210413992521136143688991471232253612332022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3二维数组应用二维数组应用5 问题分析问题分析l对于一个给定的对于一个给定的N N N N矩阵矩阵arrayarray,如果矩阵中的每个元,如果
8、矩阵中的每个元素都满足素都满足arrayij=arrayjiarrayij=arrayji,则称这个矩阵为,则称这个矩阵为对称矩阵。对称矩阵。 l在判断一个给定的矩阵是否为对称矩阵时,只需要用在判断一个给定的矩阵是否为对称矩阵时,只需要用下三角部分的每个元素与对应的上三角元素进行比较。下三角部分的每个元素与对应的上三角元素进行比较。如果每一对元素都相等,这个矩阵就是对称矩阵,否如果每一对元素都相等,这个矩阵就是对称矩阵,否则,就是非对称矩阵。则,就是非对称矩阵。2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作 算法描述 开开始始 结结束束 显显示示矩矩阵
9、阵 输输入入矩矩阵阵 mij!=mji 输输出出非非对对称称信信息息 Y N 0i iNUM 0j ji j+1j Y N i+1i Y 输输出出对对称称信信息息 N 2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作#include #define NUM 5 矩阵行列数矩阵行列数int main( ) int mNUMNUM; /*定义二维数组变量定义二维数组变量*/ int i, j;/* 输入矩阵输入矩阵 */ printf(Enter %d rows %d cols datas for the maxtrix:n,NUM,NUM); for (i
10、=0; iNUM; i+) for (j=0; jNUM; j+) scanf(%d, &mij); /* 显示矩阵显示矩阵 */ for (i=0; iNUM; i+) for (j=0; jNUM; j+) printf(%4d, mij); printf(n); lesson11_06_1.c2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作/* 判断矩阵是否对称并输出相应的结果判断矩阵是否对称并输出相应的结果 */ for (i=0; iNUM; i+) for (j=0; ji; j+) if (mij!=mji) printf(nThe
11、 matrix isnt symmetrical.); return 0; printf(nThe matrix is symmetrical.); return 0;2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3二维数组应用二维数组应用5例7:输入输入3个同学、个同学、4门课程的成绩,并按门课程的成绩,并按照如下格式输出照如下格式输出(成绩保存在成绩保存在score.txt文件中文件中)90 80 70 9997 83 92 6591 85 88 762022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作#incl
12、ude #define STUS 3 #define LSN 4 int main( ) int mSTUSLSN; /*定义二维数组变量定义二维数组变量*/ int i, j; FILE * fp; fp=fopen(score.txt,r); for (i=0; iSTUS; i+) for (j=0; jLSN; j+) fscanf(fp,%d, &mij); /* 显示矩阵显示矩阵 */ for (i=0; iSTUS; i+) for (j=0; jLSN; j+) printf(%4d, mij); printf(n); lesson11_07.c2022-6-2电气与信
13、息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3二维数组应用二维数组应用5从键盘输入一个矩阵,将该矩阵转置从键盘输入一个矩阵,将该矩阵转置后输出后输出2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作分析:分析:n定义一个定义一个2行行4列的二维数组列的二维数组a,用于存放原始,用于存放原始的矩阵的矩阵n定义一个定义一个4行行2列的二维数组列的二维数组b,用于存放转置,用于存放转置后的矩阵后的矩阵n循环数组循环数组a的所有元素,将的所有元素,将a中的每一个元素中的每一个元素存放至存放至b的对应位置:行列位置正好相反的对应位置:行列位置正好
14、相反n输出二维数组输出二维数组b2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3字符数组字符数组2复习字符串复习字符串用双引号括起来的一串字符用双引号括起来的一串字符“1234”“Tom”“C Lanuage Program”2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3字符数组字符数组2字符数组:数组元素的类型为字符字符数组:数组元素的类型为字符hello02022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3字符数组字符数组2字符数组的定义字符数组的定义char ch1
15、0; 2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3字符数组字符数组2字符数组的初始化字符数组的初始化(1) 字符数组的初始化的基本方法字符数组的初始化的基本方法char ch5=h,e,l,l,o;(2) 省略长度说明如:省略长度说明如: char ch =h,e,l,l,o;(3) 使用字符串初始化字符数组:使用字符串初始化字符数组: char ch =“abcde”; char ch =“abcde”;abcde02022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3字符数组字符数组2字符串在计算机中表示字符
16、串在计算机中表示 char ch=“1234”12340字符数组字符数组字符串结束标志字符串结束标志数组数组ch2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3字符数组字符数组2字符串的输入输出 1、gets(str); 2、scanf(“%s”, str);vgets( ) 函数以换行符或文件结束符函数以换行符或文件结束符EOF作为输入的结束作为输入的结束标志,因此在输入的字符串中允许包含空格和制表符;标志,因此在输入的字符串中允许包含空格和制表符;vscanf( ) 函数则以空格、制表符、换行符和文件结束符函数则以空格、制表符、换行符和文件结束符E
17、OF作为输入的结束标志,因此,在输入的字符串中不作为输入的结束标志,因此,在输入的字符串中不允许包含这些字符。如果包含了它们,将作为字符串输允许包含这些字符。如果包含了它们,将作为字符串输入的结束标志处理。入的结束标志处理。 char str100;2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3字符数组字符数组2字符串的输出 1、puts(str); 2、printf(%s”, str);vputs将字符串的内容显示到标准输出设备将字符串的内容显示到标准输出设备屏幕屏幕上,并换行。上,并换行。 2022-6-2电气与信息工程学院计算机系张吴波制作电气
18、与信息工程学院计算机系张吴波制作3字符数组字符数组2字符串的输出 1、puts(str); 2、printf(%s”, str);vputs将字符串的内容显示到标准输出设备将字符串的内容显示到标准输出设备屏幕屏幕上,并换行。上,并换行。 2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3字符数组字符数组2 运行如下程序运行如下程序第一次:输入第一次:输入face,观察结果,观察结果第二次:输入第二次:输入123 abc,观察结果,观察结果lesson11_11_1.clesson11_11_2.c#include #include int main( )
19、 char num1100; gets(num1); puts(num1); return 0;#include #include int main( ) char num1100; scanf(%s,num1); printf(%s,num1); return 0;2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3字符数组字符数组2练习练习1:从键盘输入一个:从键盘输入一个单词,然后将其反着输单词,然后将其反着输出,例如输入出,例如输入face输出:输出:ecafface0数组数组ch2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学
20、院计算机系张吴波制作gets(char* str);从键盘输入字符串从键盘输入字符串puts(char *str);将字符串在屏幕上输出将字符串在屏幕上输出atof( char *str);将字符串转换成小数将字符串转换成小数atoi(char *str);将字符串转换成将字符串转换成int整数整数atol(char *str);将字符串转换成将字符串转换成long整数整数itoa(int num, char *str, int radix); 将将num转换成转换成radix进制的字符串进制的字符串ltoa(long num, char* str, radix); 将将num转换成转换成ra
21、dix进制的字符串进制的字符串strlwr(char *str);将将str转换成小写转换成小写strupr(char *str);将将str转换成大写转换成大写strlen(char *str);求求str的长度的长度strcmp(char *str1,char * str2);比较比较str1和和str2的大小的大小,如果如果str1str2,返回正数返回正数strcpy(char *str1,char * str2);将字符串将字符串str2拷贝到拷贝到str1中中1strcat(char *str1, char *str2);将字符串将字符串str2连接到连接到str1后后2022-6
22、-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3字符数组字符数组2 字符串转换成数值类型 atof(str); atoi(str); atol(str);l其中其中str是一个字符串。是一个字符串。atof() 的返回类型是的返回类型是double,它可以将字符串它可以将字符串str转换成一个双精度数值;转换成一个双精度数值;atoi() 的返回类型是的返回类型是int,它可以将字符串,它可以将字符串str转换成普通转换成普通整型;整型;atol() 的返回类型是的返回类型是long,它可以将字符串,它可以将字符串str转换成长整型(转换成长整型(long)。)。
23、 2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3字符数组字符数组2例1:将用户以字符串形式输入的两个实型数值转换成double类型,并显示输出这两个实型数值及它们相加的结果。 2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作#include #include int main( ) char num120, num220; double d1, d2, sum; printf(nEnter the first number:); gets(num1); /* 输入第输入第1个用字符串表示的实型数值个用字符串表示
24、的实型数值 */ printf(Enter ths second number:); gets(num2); /* 输入第输入第2个用字符串表示的实型数值个用字符串表示的实型数值 */ d1 = atof(num1); /* 将第将第1个字符串转换成个字符串转换成double类型类型 */ d2 = atof(num2); /* 将第将第2个字符串转换成个字符串转换成double类型类型 */ sum = d1+d2; /* 将将2个个double类型数值相加类型数值相加 */ printf(n%s+%s=%.3lf, num1, num2, sum); /* 显示结果显示结果 */ retu
25、rn 0;lesson11_01.c2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3字符数组字符数组2 数值类型转换成字符串数值类型转换成字符串 itoa(num, str, radix); ltoa(num, str, radix); l其中其中str用于存放结果的字符串,用于存放结果的字符串,radix是用户指定是用户指定的进制数,它的取值必须介于的进制数,它的取值必须介于236之间。在之间。在itoa( ) 函数中的函数中的num是一个是一个int类型的数值;在类型的数值;在ltoa( ) 函数函数中的中的num是一个是一个long类型的数值。类
26、型的数值。 2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3字符数组字符数组2例例2 2:将用户输入的长整型(将用户输入的长整型(longlong类型)数值类型)数值转换成以字符串形式表示的十六进制、八进转换成以字符串形式表示的十六进制、八进制和二进制数值,并显示输出。制和二进制数值,并显示输出。 2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作#include #include int main( ) char str33; long value; printf(nEnter a long number:);
27、scanf(%ld, &value); /*输入一个输入一个long类型的数值类型的数值*/ ltoa(value, str, 16); /*转换成用字符串形式表示的十六进制数值转换成用字符串形式表示的十六进制数值*/ printf(nThe hexadecimal of %ld is %s, value, str); ltoa(value, str, 8); /*转换成用字符串形式表示的八进制数值转换成用字符串形式表示的八进制数值*/ printf(nThe octadecimal of %ld is %s, value, str); ltoa(value, str, 2); /*转
28、换成用字符串形式表示的二进制数值转换成用字符串形式表示的二进制数值*/ printf(nThe binary of %ld is %s, value,str); return 0;lesson11_02.c2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3字符数组字符数组2 大小写转换大小写转换 strlwr(str); strupr(str);lstr是一个字符串。标准函数是一个字符串。标准函数strlwr( ) 可以将字符串可以将字符串str中出现的所有大写字母转换成小写字母;标准函中出现的所有大写字母转换成小写字母;标准函数数strupr( ) 可
29、以将字符串可以将字符串str中出现的所有小写字母中出现的所有小写字母转换成大写字母。转换成大写字母。 2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3字符数组字符数组2 计算字符串长度计算字符串长度 strlen(str);这个函数的功能是返回字符串中所包含这个函数的功能是返回字符串中所包含的字符个数,即字符串长度。字符串结束标志的字符个数,即字符串长度。字符串结束标志0不计算在内。不计算在内。 字符串比较字符串比较 strcmp(str1, str2);两个字符串进行比较时将依据两个字符串进行比较时将依据每个字符对应的每个字符对应的ASCII编码决定
30、其大小。编码决定其大小。 2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3字符数组字符数组2例例4 4:假设用户的密码是假设用户的密码是“administrators”administrators”,下面这个程序将用于检测用户输入的密码是否下面这个程序将用于检测用户输入的密码是否正确。如果不正确,给出相应的提示信息,并正确。如果不正确,给出相应的提示信息,并请求用户重新输入。请求用户重新输入。 分析分析:循环的从键盘输入一个字符串,用来和循环的从键盘输入一个字符串,用来和administrators比较,如果相等结束循环比较,如果相等结束循环2022-
31、6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作#include #include int main( ) char password20; /* 存放用户输入的密码存放用户输入的密码 */ printf(nEnter password: ); gets(password); /* 输入密码输入密码 */ /* 检测用户输入的密码,如果不正确,给出提示,并请求重新输入检测用户输入的密码,如果不正确,给出提示,并请求重新输入 */ while (strcmp(password, administrators) != 0) printf(nInvalid passwo
32、rdnn); printf(Enter password, again: ); gets(password); printf(OK); /*输入正确,显示输入正确,显示OK*/ return 0;lesson11_04.c2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3字符数组字符数组2 字符串拷贝 strcpy(str1, str2);其中str2是将要被拷贝的字符串,str1是用于存放拷贝结果的存储区域。 字符串连接 strcat(str1, str2);其中str1和str2是两个字符串。这个函数的功能是:将str2连接在str1之后,并在结束处添加一个字符串结束符02022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张吴波制作3字符数组字符数组2例5:根据用户的选择输出相应的字符串。分析分析:1、定义好需要输出的字符串、定义好需要输出的字符串2、从键盘输入一个数、从键盘输入一个数3、判断输入的数,根据要求连接成一个新的、判断输入的数,根据要求连接成一个新的字符串后输出字符串后输出2022-6-2电气与信息工程学院计算机系张吴波制作电气与信息工程学院计算机系张
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年二级建造师考试《建设工程法规及相关知识》全真模拟卷
- 2020年全国硕士研究生招生考试《管理类联考综合能力》真题及解析
- 鱼池过滤系统工程承包协议书(2篇)
- 基于多维度评估制定的营养泵护理管理方案在危重症患者肠内营养中的应用
- 药品生产企业年终总结
- 三年级英语下册-教案-教学设计 U5- Phonics Recycle 1
- 2025年关于中班美术标准教案
- 2025年一建《机电工程管理与实务》考试机电工程法规案例分析题库试卷
- 2025年小学教师资格考试《综合素质》文化素养深度解析试题集(含答案)
- 2025年小学教师资格考试《综合素质》教育活动设计题押题冲刺试卷
- 2023年华为授权培训合作伙伴(HALP)合作协议模板-(认证级)
- 了不起的睡眠力:青春期科学睡眠指南
- 2019分布式电源信息采集装置技术规范
- 移动机器人SLAM技术 课件 【ch03】移动机器人的数学模型
- 基于MBD的三维工艺(完整资料)
- SWITCH塞尔达传说旷野之息-1.6金手指127项修改使用说明教程
- 阻生牙的拔除
- 造纸机的原理与结构课件
- 、野外生存教案
- 中考数学试题双向细目表
- 谈判药品审核备案表
评论
0/150
提交评论