字符数组1 - 浙江长征职业技术学院.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
字符数组1 - 浙江长征职业技术学院

项目四 学生成绩的排序 任务1 多个学生一门课成绩的输入、输出 一、问题情景 一个班40位同学参加了一次数学考试,现要输入全班同学的成绩,并按逆序输出。 三、相关知识 ? 一维数组的定义(先定义后使用) 三、相关知识 3.说明: (1)数组名:按标识符规则。本例a就是数组名。 三、相关知识 (1)C语言不检查数组下标越界,但是使用时, 一般不能越界使用,否则结果难以预料    三、相关知识 1.先定义,后使用。不能一次引用整个数组 一维数组的初始化 (1)定义数组时对数组元素赋以初值。 int x[5]={1,2,3,4,5}; (2) 可以只给一部分元素赋初值。 int x[5]={1,2}; 系统自动给指定值的数组元素赋值:x[0]=1,x[1]=2,其他元素值均为0。 (3) 如果一个数组的全部元素值都为0,可以写成: int x[5]={0,0,0,0,0}; 或int x[5]={0}; (4) 对全部元素赋初值时,可以不指定长度。 int x[5]={1,2,3,4,5};等价于int x[ ]={1,2,3,4,5}; 任务2 多个学生一门课成绩的排序 一、问题情景 一个班40位同学参加了一次数学考试,现要输入全班同学的成绩, 并按学生成绩高低进行排序。 第1趟,两两比较5次,剩5个数未排好序; 第2趟,两两比较4次,剩4个数未排好序; 第3趟,两两比较3次,剩3个数未排好序; 第4趟,两两比较2次,剩2个数未排好序; 第5趟,两两比较1次,全部排好序; 算法结论:对于n个数的排序,需进行n-1趟比较, 第j趟比较需进行n-j次两两比较。 【例4-16】输入10 个数存入一维数组,然后再按逆序重新存放后输出。 任务 3 学生姓名的输入输出 三、相关知识 (一) 一维字符数组 1. 一维字符数组的定义 例如:char c[10]; 意思是定义一个字符数组c,它有10个元素。 c[0]=’I’;c[1]=’□’;c[2]=’a’;c[3]=’m’;c[4]=’□ ’; c[5]=’h’;c[6]=’a’;c[7]=’p’;c[8]=’p’;c[9]=’y。 该数组的下标从0到9 ,数组元素值如右图所示。 3.一维字符数组的引用 【例4-7】三个同学姓名的输入输出。 4.常用的字符串处理函数 (2) 输出字符串函数 格式:puts(字符数组) 如:char s[6]=”china”; puts(s); 功能:把字符数组中所存的字符串,输出到标准输出设备中,并用’\n’代 替’\0’ 【例4-17】从键盘输入一串字符(以回车键结束),统计字符数。 任务 4 多个学生多门课成绩的排序 三、相关知识 三、相关知识 (三) 二维数组的初始化 (四) 二维数组的应用 【例4-18】输出如下的杨辉三角形,要求一共有10行10列。 (二) 二维字符数组 1. 二维字符数组的定义: char str[10][8] 定义一个二维数组str,共有10行8列共80个元素。 2. 二维字符数组的初始化: (1) char s1[3][3]={{‘a’,’b’,’c’},{‘d’,’e’,’f’},{‘1’,’2’,’3’}}; 如右图所示。 (2) char s1[3][3]={“abc123”}; 3. 二维字符数组的引用: (1)输入/输出二维字符数组中第i行(假设i=2) 四、知识扩展 任务 4 多个学生多门课成绩的排序 分析:因为不知道会输入一串多长的字符,所以刚开始定义一个足够大的字符数组char str[80],然后从键盘输入的字符将会放在str[0]至str[k]中,而str[k+1]将存放回车。如表: 所以,从str[0]开始找,只要没找到’\0’,则继续找下一个。 \0 Str(k) …… Str(0) 程序如下: #include stdio.h #define N 80 main() { char str[N],i,t; printf(输入字符串\n); gets(str); i=0; while(str[i]!=\0) i++; printf(字符数为%d,i); printf(\n); } 一、问题情景 一个班40个同学参加了三门课的考试,现要求输出按总成绩的高低排序的成绩单。成绩单的格式如下: 排序 姓名 课1 课2 课3 总分 平均分 1 张三 98 87 88 273 91 2 李四 96 86 88 270 90 …… 分析:本问题要解决姓

文档评论(0)

laolao123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档