这个作业属于那个课程 | C语言程序设计I |
---|---|
这个作业要求在哪里 | C语言I博客作业09 |
这个作业在那个具体方面帮助我实现目标 | C语言教材书,老师课堂讲的内容,同学的帮助 |
参考文献 | C语言程序设计,百度,《C primer plus》,集美大学灵丽老师 |
1.PTA实验作业
1.1打印九九口诀表 (15 分)
下面是一个完整的下三角九九口诀表:
11=1
12=2 22=4
13=3 23=6 33=9
14=4 24=8 34=12 44=16
15=5 25=10 35=15 45=20 55=25
16=6 26=12 36=18 46=24 56=30 66=36
17=7 27=14 37=21 47=28 57=35 67=42 77=49
18=8 28=16 38=24 48=32 58=40 68=48 78=56 88=64
19=9 29=18 39=27 49=36 59=45 69=54 79=63 89=72 99=81
本题要求对任意给定的一位正整数N,输出从11到N*N的部分口诀表。
输入格式:
输入在一行中给出一个正整数N(1≤N≤9)。
输出格式:
输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。
输入样例:
4
输出样例:
11=1
12=2 22=4
13=3 23=6 33=9
14=4 24=8 34=12 44=16
1.1.1数据处理
数据表达:定义了i,j,n三个整形变量
数据处理://打印九九乘法表
printf("九九乘法表:
");
int i, j ,n; //初始化打印的两个方向
for (i = 1; i<=n; i++) //两层循环嵌套打印输出
{
for (j = 1; j <= i; j++)
{
printf("%d*%d=%-4d ", j, i, j * i); //%2d表示固定输出两位
}
printf("
"); //打印到行尾,换行
}
printf("This is the end.
");
}
1.1.2实验代码截图
1.1.3 造测试数据
1.1.4 PTA提交列表及说明
Q1:部分正确
A1:i和j没有弄清行列
Q2:部分正确
A2:同上
result 2:最后答案正确
1.2找完数 (20 分)
所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
输入格式:
输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。
输出格式:
逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。
输入样例:
2 30
输出样例:
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
1.2.1数据处理
数据表达:定义了n,m,i,j,s,count6个整形变量,其中count是用来统计出现的完数个数 ,n,m为题目给出范围,s用来累加,i,j是用来一个一个找完数的
数据处理:
int n,m,i,j,s,count=0;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++){
s=1;
for(j=2;j<i;j++) //因子数之和
if(i%j0) s=s+j;
if(si){ //之和相等,即是完数
printf("%d=1",i); //每一项都有1
for(j=2;j<i;j++)
if(i%j0)
printf("+%d",j); //之后再加上后面的因子
printf("
");
count++;
}
}
if(count0) printf("None
"); //count是用来统计出现的完数个数
return 0;
}
1.2.2实验代码截图
(此代码参考过C语言实验指导的改错题)
1.2.3造数据测试
1.2.4 PTA提交列表及说明
说明:Q1:编译错误
A1:+%d没有把+和%d空开
Q2:编译错误
A2:同上
Q3:编译错误
A3:%d和=和1都要空格开
Q4:编译错误
A4:也是没有空格的地方
2.代码互评
同学的题目代码
(num1)
(num2)
我的题目代码
说明比较不同与相同:num1和我的区别在于她的代码超级长,我的比较简短,内容其实大同小异
num2和我的区别在于她用了flag标记了一下,她用了if-else和for循环,而我也是,我觉得她的很多大括号是不必要的,造成了代码冗长,
看起来不舒服,她们俩都定义了比我多的变量
学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
9.16~9.22 | 5h | 16 | 刚开始了解如何编程 | 编译的单词和字母数字都有哪一些作用,编译整个过程又是如何运行的 |
9.23~10.6 | 28h | 32 | 学会如何运用markdown语法 | 为什么会这么难 |
10.7~10.11 | 40h | 211 | 学会了编程的数学函数,对PTA也更熟练了 | 好折磨人 |
第4周/10月10~17 | 两天半 | 183 | 掌握并学会使用for循环语句 | 还有多种循环语句不了解,循环结构和分支结构谁先编 |
10.20-10.26 | 俩天 | 192 | 定义和调用函数,以及如何在一个函数中调用另一函数 | 生成乘方表跟阶乘表这方面的内容还有很多不懂的,觉得完成作业很费力气 |
10.27~11.2 | 两天半 | 220 | 如何进行语句的嵌套,对运算符的等级高低有所了解,熟悉多分支结构、字符型数据类型和逻辑运算符 | do语句和do-whlie语句搞不清 |
11.4~11.10 | 俩天 | 256 | 学会switch语句 | 很多地方不明白,一俩句话讲不清楚 |
11.11~11.17 | 俩天 | 273 | 学会了while循环,并区别do-while和while | 学习新的东西,然后对数组有疑惑 |
11.18~11.24 | 俩天 | 286 | 学会continue的使用,并且熟练,学数组 | 对数组还有一点点不懂 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
这次作业非常的赶,因为PTA非常的难,题意的理解还需要数学好,逻辑思维要求也比较高,导致最初是怯场,再后来就是发现题意有时候难以理解,PTA迟迟搞不完,
我还是觉得自己落下的东西比较多,还要自己经常抽一些零碎时间学习一下不懂的地方,给自己补补课,然后就是我也应该用心总结一下,分好类,哪个地方掌握的还可以,
哪个地方还有待加强,,再就是PTA要多弄懂点题目,实在不会可以选择多问问的方法了,问题不能越积越多,尽早解决。