




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Lesson11数据的组织结构 1 学习目标 1 掌握二维数组的使用 2 字符数组 数组元素的类型为字符 3 字符数组的定义 charch 10 4 字符串 用双引号括起来的一串字符 5 字符串在计算机中表示 1234 字符数组 字符串结束标志 6 字符数组的初始化 1 字符数组的初始化的基本方法charch 5 h e l l o 2 省略长度说明如 charch h e l l o 3 使用字符串初始化字符数组 charch abcde charch abcde 7 字符串的输入输出1 gets str 2 scanf s str gets 函数以换行符或文件结束符EOF作为输入的结束标志 因此在输入的字符串中允许包含空格和制表符 scanf 函数则以空格 制表符 换行符和文件结束符EOF作为输入的结束标志 因此 在输入的字符串中不允许包含这些字符 如果包含了它们 将作为字符串输入的结束标志处理 charstr 100 8 字符串的输出1 puts str 2 printf s str puts将字符串的内容显示到标准输出设备 屏幕上 并换行 9 字符串转换成数值类型atof str atoi str atol str 其中str是一个字符串 atof 的返回类型是double 它可以将字符串str转换成一个双精度数值 atoi 的返回类型是int 它可以将字符串str转换成普通整型 atol 的返回类型是long 它可以将字符串str转换成长整型 long 10 例1 将用户以字符串形式输入的两个实型数值转换成double类型 并显示输出这两个实型数值及它们相加的结果 11 include includeintmain charnum1 20 num2 20 doubled1 d2 sum printf nEnterthefirstnumber gets num1 输入第1个用字符串表示的实型数值 printf Enterthssecondnumber 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 显示结果 return0 12 数值类型转换成字符串itoa num str radix ltoa num str radix 其中str用于存放结果的字符串 radix是用户指定的进制数 它的取值必须介于2 36之间 在itoa 函数中的num是一个int类型的数值 在ltoa 函数中的num是一个long类型的数值 13 例2 将用户输入的长整型 long类型 数值转换成以字符串形式表示的十六进制 八进制和二进制数值 并显示输出 14 include includeintmain charstr 33 longvalue printf nEnteralongnumber scanf ld 15 大小写转换strlwr str strupr str str是一个字符串 标准函数strlwr 可以将字符串str中出现的所有大写字母转换成小写字母 标准函数strupr 可以将字符串str中出现的所有小写字母转换成大写字母 16 例3 统计一段文本中每个英文字母出现的次数 分析 定义一个数组letter 存放英文字母出现的次数 letter 循环字符数组 针对每个字母 找到其在数组letter中的对应位置 然后加1 17 letter 如何确定每个字母在letter中的位置呢 A对应letter 0 B对应letter 1 C对应letter 2 下标 0 A A 下标 1 B A 下标 2 C A 18 include include include defineNUM26intmain intletter NUM 0 用于存放统计结果的一维数组 charstr 80 存放以字符串形式输入的文本 inti printf nEnteratextline gets str 输入文本 strupr str 将文本中的所有小写字母转换成大写字母 for i 0 str i 0 i 统计每个字母出现的次数 if isalpha str i letter str i A letter str i A 1 for i 0 i NUM i 输出统计结果 printf n c d A i letter i return0 19 计算字符串长度strlen str 这个函数的功能是返回字符串中所包含的字符个数 即字符串长度 字符串结束标志 0 不计算在内 字符串比较strcmp str1 str2 两个字符串进行比较时将依据每个字符对应的ASCII编码决定其大小 20 例4 假设用户的密码是 administrators 下面这个程序将用于检测用户输入的密码是否正确 如果不正确 给出相应的提示信息 并请求用户重新输入 分析 循环的从键盘输入一个字符串 用来和administrators比较 如果相等结束循环 21 include includeintmain charpassword 20 存放用户输入的密码 printf nEnterpassword gets password 输入密码 检测用户输入的密码 如果不正确 给出提示 并请求重新输入 while strcmp password administrators 0 printf nInvalidpassword n n printf Enterpassword again gets password printf OK 输入正确 显示 OK return0 22 字符串拷贝strcpy str1 str2 其中str2是将要被拷贝的字符串 str1是用于存放拷贝结果的存储区域 字符串连接strcat str1 str2 其中str1和str2是两个字符串 这个函数的功能是 将str2连接在str1之后 并在结束处添加一个字符串结束符 0 23 例5 根据用户的选择输出相应的字符串 分析 1 定义好需要输出的字符串2 从键盘输入一个数3 判断输入的数 根据要求连接成一个新的字符串后输出 24 include includeintmain charstr1 80 Thisisa charstr2 program charstr3 Java charstr4 Pascal charstr5 C charstr6 C intchoice printf n MENU n 菜单 printf nJava 1 printf nPascal 2 printf nC 3 printf nC 4 printf nchoice scanf d 用户做出选择 25 switch choice 根据用户的选择拼接字符串 case1 strcat str1 str3 strcat str1 str2 break case2 strcat str1 str4 strcat str1 str2 break case3 strcat str1 str5 strcat str1 str2 break case4 strcat str1 str6 strcat str1 str2 break default strcpy str1 Error break printf n s str1 显示字符串 return0 26 请从键盘输入3个同学 4门课程的成绩 并按照如下格式输出 8070999783926591858876 例 27 分析 有12个成绩需要保存 使用数组 长度为12的一维数组 intscore 12 数组排列方式 如何区分是哪门课程 是第几个同学的成绩 score 28 思考 重新排列 特点 像表格一样具有行和列 每个变量需要行和列的位置才能确定 score 29 在C语言中如何实现 类型数组名 行长度 列长度 intarray 3 4 例 floatd 3 5 inta 6 6 chars 4 10 所有元素都是int 数组名 3行4列注意 必须是常量 30 二维数组的引用 7 第1行 第2列 数组a a 1 2 数组名 行下标 列下标 31 在定义二维数组时 给元素赋初值 形式1 inta 2 3 1 2 3 4 5 6 形式2 inta 2 3 1 2 3 4 5 6 形式3 inta 3 1 2 3 4 5 6 形式4 inta 2 1 2 3 4 5 6 错误 32 二维数组元素的引用及基本操作数组的赋值for i 0 i ROWS i for j 0 j COLS j value i j i j 数组的输入for i 0 i ROWS i for j 0 j COLS j scanf d defineROWS4 defineCOLS5intvalue ROWS COLS 33 二维数组元素的引用及基本操作3 数组的输出for i 0 i ROWS i for j 0 j COLS j printf 4d value i j putchar n defineROWS4 defineCOLS5intvalue ROWS COLS 34 例6 判断给定方阵是否为对称矩阵 35 问题分析对于一个给定的N N矩阵array 如果矩阵中的每个元素都满足array i j array j i 则称这个矩阵为对称矩阵 在判断一个给定的矩阵是否为对称矩阵时 只需要用下三角部分的每个元素与对应的上三角元素进行比较 如果每一对元素都相等 这个矩阵就是对称矩阵 否则 就是非对称矩阵 36 算法描述 37 include defineNUM5 矩阵行列数intmain intm NUM NUM 定义二维数组变量 inti j 输入矩阵 printf Enter drows dcolsdatasforthemaxtrix n NUM NUM for i 0 i NUM i for j 0 j NUM j scanf d 38 判断矩阵是否对称并输出相应的结果 for i 0 i NUM i for j 0 j i j if m i j m j i printf nThematrixisn tsymmetrical return0 printf nThematrixissymmetrical return0 39 矩阵转置 40 41 include defineROWS2 矩阵行数 defineCOLS4 矩阵列数intmain intvalue1 ROWS COLS value2 COLS R
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论