这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11531 |
这个作业的目标 | 熟练运用循环镶嵌结构 |
这个作业在那个具体方面帮助我实现目标 | 函数的运用 |
参考文献 | C语言程序设计 |
你的学号 | 20208963 |
1.PTA实验作业
1.题目一
1.1.1数据处理
数据表达:运用整数型变量n和number;
以及自定义函数:
void count_sum( int a, int b )
数据处理:运用循环语句while和for语句以及分支语句if-else
while(num>0){ /*循环结构while判断整数每个位置的数;
n+=num%10;
num/=10;
}
if(n==5){ /*判断是否等于5,跳出;
return 1; /*返回值为一;
for(a;a<=b;a++){ /*循环统计数量;
if (is(a)){
count++;
sum+=a; /累加;
1.1.2 实验代码截图
1.1.3 造实验测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
111 201 | count = 4, sum = 506 | 260到201之间有4个各位数字之和是否等于5的数,且它们的和为506 |
260 520 | count = 6, sum = 2244 | 260到520之间有4个各位数字之和是否等于5的数,且它们的和为2244 |
320 360 | count = 1, sum = 320 | 320到360之间有4个各位数字之和是否等于5的数,且它们的和为320 |
444 999 | count = 1, sum = 500 | 444到999之间有4个各位数字之和是否等于5的数,且它们的和为500 |
1.1.4 提交列表及说明 | ||
1.在编译过程中没有考虑到A本身的数值,在循环运算时没有算入循环体
将
for(a;a<b;a++)
改为
for(a;a<=b;a++)
运算正确;
2.在编译过程中忘记了while的循环跳出条件,导致结果没有跳出
将
while(num>=0)
改为
while(num>0)
运算正确,编译成功;
1.2.1数据处理
数据表达:运用整数型变量m n c 以及数组表达序列num[10001],flag[10001],pri[10001];
数据处理:运用自定义函数
int get(int d)
以及循环语句while和for还有if-else分支语句
if(num[d] != -1) return num[d] /*判断数组变量是否表达;
num[d] = -2; /*对数据进行赋值;
int t = d,sum = 0;
while(t) { /*循环体变量t的值;
sum += (t % 10) * (t % 10);
t /= 10;
}
t = get(sum); /*赋予t新的数值;
if(t >= 0) flag[sum] = 1;
return num[d] = t == -2 ? t : t + 1;
1.2.2实验代码截图
1.2.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
110 120 | SAD | 没有幸福数 |
10 40 | 19 23 28 31 32 8 6 3 4 3 | 在10到40之间有5个幸福数分别为19 23 18 31 32独立性分别为8 6 3 4 3 |
40 60 | 44 49 4 4 | 在40到60之间有2个幸福数分别为44 49独立性分别为4 4 |
100 120 | 103 109 4 8 | 在100到120之间有2个幸福数分别为103 109独立性分别为4 8 |
1.2.4提交列表及说明 | ||
1.在运用循环语句for时,忘记考虑了一种情况,
没有对
for(int i = m;i <= n;i ++)
再次使用,导致运算结果缺少了独立性的表达
运用两次后成功输出;
2.在运用for语句镶嵌时,将最外层的大范围数据循环写到了最外面,、
导致范围出错
改为
for(int i = 2;i * i <= 10000;i ++) {
if(pri[i]) continue;
for(int j = i * i;j <= 10000;j += i) {
pri[j] = 1;
成功运行,运算正确;
2.代码互评
同学代码1
同学代码2
我的代码
互评:1.从语句的运用方面来说,我们整体上的代码思路是一致的,
都运用了while循环语句来判断数组变量,然后运用if-else
多分支结构去输出多种结果
2.从代码的运用上来说【同学代码1】运用了插旗子标记的方法
flag=1 flag=0
以此来使代码输出的结果有两种输出渠道,甚是方便实用
3.从代码整体简洁性上看【同学代码2】的代码内容较为简洁,
但是相对来说也容易出错,细节较多。充分展示了该同学对
代码编程的掌握能力和理解能力;
3.学习总结
周/日期 | 这周所花时间 | 代码行 | 学到到的知识点 | 目前比较困惑的问题 |
---|---|---|---|---|
第一周 | 6小时 | 200 | 输出Hello World | 对于循环的条件运用以及 |
第二周 | 8小时 | 500 | 数学运算 if分支语句 | 循环时具体的赋值状态 |
第三周 | 15小时 | 900 | for循环语句 | |
第四周 | 18小时 | 700 | 调用自定义函数 | 对于自定义函数掌握不太熟练 |
第五周 | 19小时 | 800 | 逻辑运算以及if多分支结构 | 运用if多分支时容易搞混乱语句的结构顺序 |
第六周 | 24小时 | 900 | switch语句的多分支结构 | 不能熟练掌握switch语句简化语句的以及break跳出方式 |
第七周 | 27小时 | 950 | while语句 | 不能熟练运用while的判断条件 |
第八周 | 29小时 | 780 | 镶嵌结构 | 不能较好分清镶嵌的层次和次数 |
第九周 | 32小时 | 800 | 循环多分支结构以及自定义函数 | 不能熟练掌握自定义函数有参和无参的相对意义 |
3.2 累积代码行和博客字数 | ||||
3.3 学习内容总结和感悟
3.3.2 学习体会
1:已经学习九周目了,对于程序的编写也越来越复杂,对于代码的研究也越来越深入。我从中慢慢感受到了这门学科的难点和重点
2:我已经能够理解简单的代码数据类型,也能够看懂其他人一些简单的代码结构,这将会对我以后自己研究代码提供了一定的基础
3:我也能够从不同的代码编写上找出简便的编写方法,研究出一套适合自己的编写路径和独特的代码编写特点。
4:学习完for语句镶嵌后才发现好多东西代码可以替换,每种代码有着本身的特色和表达方式,不同代码组合在一起会产生极大效果
每种代码的相互配合和结合都会有助于程序的编写,以及自定义函数的使用让编程语句更加简洁实用;
5: 希望以后自己能够坚持住对代码编写的信心,对于代码的运用越来越熟练。