C语言|博客作业10
这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业的要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10095 |
我在这个课程的目标是 | 学习基础程序语言C语言,基本掌握C语言的思维方向 |
这个作业具体在哪个方面帮助我实现目标 | 编程训练,思维构建,逻辑推导,字符型变量,嵌套循环的练习 |
参考文献 | 百度,C语言程序设计 |
1.PTA实验作业
1.1 题目1
7-8 输出三角形字符阵列
1.1.1数据处理
数据表达:变量i是行数的计数器;变量j是每行列数的计数器;n是输入的数,也是用来监控每行列数是否完成的;num是每一行的总列数;sum是总行数
数据处理:
#include<stdio.h>
int main ()
{
定义变量
用户输入
将sum以及num赋值
while (i<num)
{
把num赋值给n,以免在内循环中n值丢失
for (j=0;j<num;j++)
{
输出一个字母
字符累加
n累减1,使得在该行的字母不会无限增加
}
输出换行
累加行数
num累减
}
return0;
}
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
4 | A B C D <换行>E F G <换行>H I <换行>J | 第一行和第一列都是4 |
3 | A B C <换行>D E <换行>F | 第一行和第一列都是3 |
1.1.4 PTA提交列表及说明
格式错误1、2:在while语句的条件句中我将条件设置为i<=sum,所以在输出结果中多了一次换行。在此感谢助教罗鹏同学的帮助
答案正确:将条件改为i<sum,答案正确。
1.2题目2
7-3 梅森数
1.2.1数据处理
数据表达:变量sum是最后输出的梅森数;num是用户输入变量;i是外循环的计数器;j是内循环的计数器;k是在内循环的if-else语句里的计数器
数据处理:
#include<stdio.h>
#include <math.h>
int main ()
{
定义变量
用户输入
for(i=2;i<=num;i++)
{
计算sum
for(j=2;j<=sum的平方)
if (判断sum/j是否与0相等) break;
if(j>sum的平方)
{
输出梅森数
k++;
}
}
if (k==0)
输出“None”
return 0;
}
1.2.2实验代码截图
1.2.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
1 | None | 最小梅森数是3 |
6 | 3<回车>7<回车>31 | 2的6次方有三个梅森数 |
19 | 3<回车>7<回车>31<回车>127<回车>8191<回车>131071<回车>524287 | 2的19次方有7个梅森数 |
21 | 3<回车>7<回车>31<回车>127<回车>8191<回车>131071<回车>524287 | 因为给出的范围是输入需要小于20,所以当输入21时,输出仍然是输入十九是的数字 |
1.2.4PTA提交列表及说明
答案正确:之前的思路只有一个大概的轮廓,写出来也总是不能对,后面再网络上百度了这道题,看到了大佬们的写法,才按着思路写下来。但可能因为不是我完全的独立思考,有些地方写完了我也不能解释的很清楚
1.3题目3
7-4 同构数
1.3.1数据处理
数据表达:变量i是计数器,也是同构数
数据处理:
#include<stdio.h>
int main ()
{
定义变量
for (i=1;i<1000;i++)
if (判断i是否是同构数)
输出i(记得留出六个位数)
1.3.2实验代码截图
1.3.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
无 | 1 5 6 25 76 376 625 | 无输入 |
1.2.4PTA提交列表及说明
答案正确:刚开始我用的平时做题的思路想的,但是一直输出不了,那时的代码也不能调试,一调试就直接结束。后面看到别人用的是直接输出,我也就这么做了(捂脸),老师说不可以,我就捡起最开始的思路来想。虽然最后还是没有想出来,而且好复杂的样子。
答案错误:这就是我在看了同学代码之后的尝试。我忘记把1也设定进去了
答案正确:我也不知道这是什么神奇代码,耗时居然只有2ms?但是我完全没有印象
答案正确:答案错误改正之后的结果。同学的这段代码我真的想不到。利用题目给出的范围判断同构数,很简单也很巧妙。
2.代码互评
同学代码:
我的代码:
1、同学的代码是直接用两个for排出行和列的。我的是用了while和for
2、我的还是太麻烦了,而且代码很长,定义的变量很多,缺点太多了
同学代码:
我的代码:
1、同学代码很长,但是她的方法就是我之前想到的方法。
2、我是利用了题目给出的范围,她是在for循环里面嵌套if-else
3.1学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
9/28-10/05 | 约2小时 | 26行 | 输入模式的学习,练习 | 熟练度不够,对于输入输出过程基本是完全不理解 |
10/05-10/12 | 约6小时 | 86行 | 输入和输出学会了,不同的结构,语句,运算的学习等等 | 熟练度不够,知识存储量不够,导致编程的时候经常需要查阅资料 |
10/12-10/18 | 约5小时 | 91行 | 可以自行编程,只有编程完成后出现错误才需要向同学求助。基本操作和思路学会,但是有些不够熟练。学习了代码的调试 | 不能熟练自主操作调试,编程不够熟练 |
10/18-10/26 | 约12小时 | 127行 | 可以看着书写出来函数定义基操 | 有时的变量定义拿不准,总是会多定义一些莫名其妙的变量,我想这是函数定义不够熟练、对题目的理解不到位的原因吧 |
10/26-11/03 | 约15小时 | 131行 | if-else的嵌套,逻辑运算符,字符型变量 | 字符型变量还不理解 |
11/03-11/8 | 约17小时 | 121行 | switch语句 | 思维逻辑还有点混乱 |
11/8-11/22 | 约16小时 | 106行 | 嵌套循环和break,continue的使用 | 在做比较有难度的题时,独立思考的结果不理想 |
11/22-11/29 | 约20小时 | 90行 | 之前的内容的深度学习 | 在思考的时候总会比别人想的复杂 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
思维导图贴图:
3.3.2学习体会
本周学习结束了。过不了多久期末考试就要到来了。在这段时间的学习中,嵌套循环的练习进行的还不错,字符型变量也能够理解了。但是在思考的时候总是比别人慢一步。总是说自己要多做题,多刷题,可是到了最后连作业也完成的够呛。总是要在后面完成。希望不要挂科吧......