这个作业要求在哪里 | http://t.csdn.cn/ULQVf |
---|---|
我在这个课程的目标是 | 可以熟练掌握一些常见的字符串处理的函数 ,正确使用并读懂数组 |
这个作业在那个具体方面帮助我实现目标 | 理解数组变量在内存中的存放形式,数组元素的引用,二维数组的理解,字符串与字符数组的区别 |
参考文献 | 《C语言程序设计教程(第3版)》、百度 |
1.PTA实验作业
1.1找出矩阵中最小值所在的位置
将1个m x n的矩阵存入1个m x n的二维数组中,找出最小值以及它的行下标和列下标,并输出该矩阵。
1.1.1数据处理
1.数据表达
定义了m,n两个整型变量来表示行列长度,定义i,j两个整型变量为循环控制变量,定义mini,minj两个整型表示最小值在矩阵中所处的行列位置下标,用for循环结构进行矩阵行列的循环,镶嵌if选择结构来判断最小值。
2.数据处理
1.1.2实验代码截图
1.1.3造测试数据
输入数据 | 输出数据 |
---|---|
3 2 | 5 6 |
5 6 | 9 7 |
9 7 | 3 8 |
3 8 | min = a[2][0] = 3 |
– | – |
2 3 | 9 5 6 |
5 6 9 | 7 3 8 |
7 3 8 | min = a[1][1] = 3 |
– | – |
3 3 | 5 6 7 |
5 6 7 | 9 3 2 |
9 3 2 | 1 4 8 |
1 4 8 | min = a[2][0] = 1 |
1.1.4PTA提交列表及说明
提交列表说明:
1.编译错误:输出函数结束忘记分号,大括号匹配不正确,仔细对比后改正
2.答案错误:输出格式错误,最小值的行下标、列下标输出格式没注意规范,查阅《C语言程序设计1》改正
3.答案错误:输出格式错误,矩阵未成形,查阅百度后改正
4.答案错误:在行列循环输出时的空格换行符间断了行列的输出位置,经请教朋友后调整改正规范
1.2 短号
在某年的校程序设计竞赛中,报名参赛的同学很多都只留了短号,这让通知获奖同学来取获奖证书的H老师很是困扰,因为他没有短号!痛定思痛,H老师也要办短号了。这里约定短号为手机号码的最后六位,但如果取出的最后六位是以0开头的,要改为以9开头。现给出H老师手机号码,请确定他的短号。
1.2.1 数据处理
1.数据表达
定义整型 i 为循环控制变量,整型n表示有几个数据,for循环结构与If选择结构镶嵌,其中scanf函数在输入字符串时要使用%s格式控制符,并且定义了有100个数组元素的char数组t。
2.数据处理
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 |
---|---|
2 | 13110023456 923456 |
13110023456 | 13111123456 123456 |
13111123456 | |
– | – |
2 | 15200772513 772513 |
15200772513 | 15200092513 992513 |
15200092513 | |
– | – |
2 | 18867212596 212596 |
18867212596 | 18867202596 202596 |
18867202596 | |
– | – |
2 | 13452698431 698431 |
13452698431 | 13452697431 697431 |
13452697431 |
1.2.4 PTA提交列表及说明
提交列表说明:
1.编译错误:手机号码未定义成字符型,定义为int整型,并且输入函数在输入字符串时未使用%s格式控制符,查阅《C语言程序设计1》后改正
2.答案错误:关于”取出的最后六位以0开头“,数组t的第五位元素t[5]与0比较时未使用关系运算符== ,而是直接使用的等号=,输出的答案出现错误,请教朋友帮忙后改正
3.答案错误:输入 t 时,没有打 “ 取地址运算符 & ",多次浏览代码后改正
4.答案错误:关于“最后六位是以0开头的,要改为以9开头”的0和9,未打上单引号 ’ ‘,导致答案错误,一直没发现,请教朋友后才改正过来
2.代码互评
(1) 同学代码截图
自己代码截图
不同点:
1.舒同学和自己关于最小值的行下标、列下标的定义变量不一样,m与n表示的行列相反,唐同学定义的变量也不一样
2.唐同学在输出矩阵的时候是选择在printf里面之间通过空格来空出空间,舒同学在输出矩阵的时候之间统一是%4d,而自己是矩阵每列前将%4,%5d 分开了
3.舒同学没有对最小值的行下标、列下标进行赋初值,自己对其二进行了初始化为0
4.舒同学和自己关于前大括号的排列习惯不同,舒同学代码换行的版面比自己的更加美观和清晰
5.唐同学对于题目补充判断输入的值是否为最小值,是返回1,否返回0,舒同学和自己没有做相关的代码处理
(2)同学代码截图
自己代码截图
不同点:
1.舒同学与自己定义关于char数组t的数组长度不一样
2.自己在for循环开始处 判断了输入的数是否为0,而舒同学没有
3.舒同学将短号输出的结果直接输出在for循环里,自己因为判断了输入的数是否为0,导致将短号的输出先放在了if选择结构条件成立的内部
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简历 | 目前比较困惑的问题 |
---|---|---|---|---|
第一周 | 14h | 75 | 计算机系统组成及工作原理,进位转换,机器数 | 进位计数制的转换不熟练 |
第二周 | 10h | 169 | 基本数据类型,运算符与表达式,基本输入输出 | 优先级顺序反应较迟钝 |
第三周 | 18h | 150 | 选择结构程序设计(if 、switch语句) | else容易匹配混乱 |
第四周 | 16h | 164 | 循环结构程序设计(while、do-while、for语句),循环嵌套 | 循环嵌套在编译中没有熟练掌握 |
第五周 | 20h | 188 | 一维数组 | 在使用memset函数、memcpy函数来赋值没有理解 |
第六周 | 18h | 225 | 二维数组,字符串与数组 | 给数组变量赋值,数组综合应用不会 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
1.这周的数组相关学习感觉心态进步一下,仍处于模仿状态,空余时间多刷题,多学习一下优秀的代码
2.设计性代码编译不能够灵活处理,自主分析的能力有待提高,也有在和身边的会做的朋友请教
3.作业工作量挺重的,容易内耗,有主动找一些可以解决问题的途径,和从头开始看一些小白的课程
4.时间很快,已经进入第十一周了,希望早日适应,“现在恐惧是因为无知”
5.对选择/循环结构,数组等规则概念有所印象,但是代码分析和编译程序的缺陷还是很大,执行能力较差