欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    lesson11数据的组织结构一二维数组.ppt

    • 资源ID:2202075       资源大小:943.51KB        全文页数:42页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    lesson11数据的组织结构一二维数组.ppt

    Lesson 11 数据的组织结构,1,学习目标:,1,掌握二维数组的使用,2,字符数组:数组元素的类型为字符,3,字符数组的定义,char ch10;,4,字符串,用双引号括起来的一串字符,5,字符串在计算机中表示,“1234”,字符数组,字符串结束标志,6,字符数组的初始化,(1) 字符数组的初始化的基本方法 char ch5='h','e','l','l','o' (2) 省略长度说明如: char ch ='h','e','l','l','o' (3) 使用字符串初始化字符数组: char ch =“abcde”; char ch =“abcde”;,7,字符串的输入输出 1、gets(str); 2、scanf(“%s”, str); gets( ) 函数以换行符或文件结束符EOF作为输入的结束标志,因此在输入的字符串中允许包含空格和制表符; scanf( ) 函数则以空格、制表符、换行符和文件结束符EOF作为输入的结束标志,因此,在输入的字符串中不允许包含这些字符。如果包含了它们,将作为字符串输入的结束标志处理。,char str100;,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 #include int main( ) char num120, num220; double d1, d2, sum; printf(“nEnter the first number:“); gets(num1); /* 输入第1个用字符串表示的实型数值 */ 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); /* 显示结果 */ return 0; ,12,数值类型转换成字符串 itoa(num, str, radix); ltoa(num, str, radix); 其中str用于存放结果的字符串,radix是用户指定的进制数,它的取值必须介于236之间。在itoa( ) 函数中的num是一个int类型的数值;在ltoa( ) 函数中的num是一个long类型的数值。,13,例2:将用户输入的长整型(long类型)数值转换成以字符串形式表示的十六进制、八进制和二进制数值,并显示输出。,14,#include #include int main( ) char str33; long value; printf(“nEnter a long number:“); scanf(“%ld“, ,15,大小写转换 strlwr(str); strupr(str); str是一个字符串。标准函数strlwr( ) 可以将字符串str中出现的所有大写字母转换成小写字母;标准函数strupr( ) 可以将字符串str中出现的所有小写字母转换成大写字母。,16,例3:统计一段文本中每个英文字母出现的次数。,分析: 定义一个数组letter,存放英文字母出现的次数,letter,循环字符数组,针对每个字母,找到其在数组letter中的对应位置,然后加1,17,letter,如何确定每个字母在letter中的位置呢? A 对应 letter0 B 对应 letter1 C 对应 letter2,下标:0 A-A 下标:1 B-A 下标:2 C-A,18,#include #include #include #define NUM 26 int main( ) int letterNUM = 0; /* 用于存放统计结果的一维数组 */ char str80; /* 存放以字符串形式输入的文本 */ int i; printf(“nEnter a text line“); gets(str); /* 输入文本 */ strupr(str); /* 将文本中的所有小写字母转换成大写字母 */ for (i=0; stri!='0' i+) /* 统计每个字母出现的次数 */ if (isalpha(stri) letterstri-'A' = letterstri-'A'+1; for (i=0; iNUM; i+) /* 输出统计结果 */ printf(“n'%c':%d“, 'A'+i, letteri); return 0; ,19,计算字符串长度 strlen(str);这个函数的功能是返回字符串中所包含的字符个数,即字符串长度。字符串结束标志0不计算在内。 字符串比较 strcmp(str1, str2);两个字符串进行比较时将依据每个字符对应的ASCII编码决定其大小。,20,例4:假设用户的密码是“administrators”,下面这个程序将用于检测用户输入的密码是否正确。如果不正确,给出相应的提示信息,并请求用户重新输入。,分析: 循环的从键盘输入一个字符串,用来和administrators比较,如果相等结束循环,21,#include #include int main( ) char password20; /* 存放用户输入的密码 */ printf(“nEnter password: “); gets(password); /* 输入密码 */ /* 检测用户输入的密码,如果不正确,给出提示,并请求重新输入 */ while (strcmp(password, “administrators“) != 0) printf(“nInvalid passwordnn“); printf(“Enter password, again: “); gets(password); printf(“OK“); /*输入正确,显示“OK“*/ return 0; ,22,字符串拷贝 strcpy(str1, str2);其中str2是将要被拷贝的字符串,str1是用于存放拷贝结果的存储区域。 字符串连接 strcat(str1, str2);其中str1和str2是两个字符串。这个函数的功能是:将str2连接在str1之后,并在结束处添加一个字符串结束符0,23,例5:根据用户的选择输出相应的字符串。,分析: 1、定义好需要输出的字符串 2、从键盘输入一个数 3、判断输入的数,根据要求连接成一个新的字符串后输出,24,#include #include int main( ) char str180 = “This is a “; char str2 = “ program.“; char str3 = “Java“; char str4 = “Pascal“; char str5 = “C“; char str6 = “C+“; int choice; printf(“n = MENU =n“); /* 菜单 */ printf(“n Java . . 1“); printf(“n Pascal . 2“); printf(“n C . . 3“); printf(“n C+ 4“); printf(“n choice:“); scanf(“%d“, /* 用户做出选择 */,25,switch (choice) /* 根据用户的选择拼接字符串 */ case 1: strcat(str1, str3); strcat(str1, str2); break; case 2: strcat(str1, str4); strcat(str1, str2); break; case 3: strcat(str1, str5); strcat(str1, str2); break; case 4: strcat(str1, str6); strcat(str1, str2); break; default: strcpy(str1, “Error“); break; printf(“n%s“, str1); /* 显示字符串 */ return 0; ,26,请从键盘输入3个同学、4门课程的成绩,并按照如下格式输出,80 70 99 97 83 92 65 91 85 88 76,例:,27,分析,有12个成绩需要保存,使用数组,长度为12的一维数组?,int score12,数组排列方式,如何区分是哪门课程, 是第几个同学的成绩?,score,28,思考,重新排列,特点:像表格一样具有行和列,每个变量需要行和列的位置才能确定,score,29,在C语言中如何实现?,类型 数组名 行长度列长度,int array 34,例:float d 35; int a66; char s410;,所有元素都是int,数组名,3行4列 注意:必须是常量,30,二维数组的引用,7,第1行,第2列,数组a,a1,2,数组名行下标列下标,31,在定义二维数组时,给元素赋初值,形式1: int 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;,×错误!,32,二维数组元素的引用及基本操作 数组的赋值 for (i=0; iROWS; i+) for (j=0; jCOLS; j+) valueij = i+j; 数组的输入 for (i=0; iROWS; i+) for (j=0; jCOLS; j+) scanf(“%d”, ,#define ROWS 4 #define COLS 5 int value ROWSCOLS;,33,二维数组元素的引用及基本操作 3. 数组的输出 for (i=0; iROWS; i+) for (j=0; jCOLS; j+) printf(“%4d”, valueij); putchar(n); ,#define ROWS 4 #define COLS 5 int value ROWSCOLS;,34,例6: 判断给定方阵是否为对称矩阵。,35,问题分析 对于一个给定的NN矩阵array,如果矩阵中的每个元素都满足arrayij=arrayji,则称这个矩阵为对称矩阵。 在判断一个给定的矩阵是否为对称矩阵时,只需要用下三角部分的每个元素与对应的上三角元素进行比较。如果每一对元素都相等,这个矩阵就是对称矩阵,否则,就是非对称矩阵。,36,算法描述,37,#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=0; iNUM; i+) for (j=0; jNUM; j+) scanf(“%d“, ,38,/* 判断矩阵是否对称并输出相应的结果 */ for (i=0; iNUM; i+) for (j=0; ji; j+) if (mij!=mji) printf(“nThe matrix isn't symmetrical.“); return 0; printf(“nThe matrix is symmetrical.“); return 0; ,39,矩阵转置,40,41,#include #define ROWS 2 /矩阵行数 #define COLS 4 /矩阵列数 int main( ) int value1ROWSCOLS,value2COLSROWS; int i, j; printf(“nEnter %d rows %d cols datas for the maxtrix:n“,ROWS,COLS); for (i=0; iROWS; i+) for (j=0; jCOLS; j+) scanf(“%d“, ,编程实现从键盘任意输入20个整数,统计非负数个数,并计算非负数之和。 输入5×5阶的矩阵,编程实现: (1)求两条对角线上的各元素之和。 (2)求两条对角线上行、列下标均为偶数的各元素之积。 输入一行字符,统计其中的英文字符、数字字符、空格和其他字符的个数。,42,

    注意事项

    本文(lesson11数据的组织结构一二维数组.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开