C语言1博客作业09
问题 | 答案 |
---|---|
这个作业属于在哪个课程 | C语言程序设计II |
这个作业要求在哪里 | <a href="https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10027" |
target="_blank">C语言I作业09 | |
我在这个课程目标是 | 学好C语言,为后面学习打好基础 |
这个作业具体在哪里方面帮助我 | 熟悉break、continue的使用 , 熟悉使用循环的嵌套解决问题 |
参考文献 | <a href="https://baidu.com"target="_blank">百度 , <a href="https://www.cnblogs.com/pengchen511/p/10564067.html"target="_blank">C语言作业评价标准 |
一:PTA实验作业
1.1题目名跟奥巴马一起画方块
美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!
输入格式:
输入在一行中给出正方形边长N(3≤N≤21)和组成正方形边的某种字符C,间隔一个空格。
输出格式:
输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)
1.1.1数据处理
1.数据表达:用了整形变量i,j, n;字符型变量 c
2.数据处理:
先定义变量i,j, n,c;
输入整数你,字符c;
for i=1 to i<=(n+1)/2 do//输出行数实际上是列数的50%
i++
for j=1 to j<=2 do//输出的列数
j++
end
1.1.2实验代码贴图
1.1.3造数据测试
输入数据 | 输出数据 | 说明 |
---|---|---|
10 a | aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa | PTA数据 |
4 a | aaaa aaaa | 随机打的 |
5 a | aaaaa aaaaa aaaaa | 随机打的 |
1.1.4PTA提交列表说明
1.答案错误,这题是用字符c输出,但是我输入的数据没有用%c,导致错误
2.编译错误,没有使用英文键盘,分号使用错误
1.2题目名找完数
所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
输入格式:
输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。
输出格式:
逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。
1.2.1数据处理
1.数据表达:用了整形变量m,n,i,j,s,k,count
2.数据处理
定义变量m,n,i,j,s,k,count,m,n是输入的一个区间的正整数,i,j,k是在这个区间的数,count是累加完数
for(i=m;i<=n;i++)//就行循环
for(j=1;j<i;j++)
if(i%j==0)//判断是否是该数的因子
s+=j;累加因字的和
if(s==i)判断是否为完数
printf("%d = 1",i)先打印1,每个完数都有1
for(k=2;k<j;k++)//重复操作
找到所有完数
if(count==0)没有就输出None
1.2.2实验代码贴图
1.2.3造数据测试
输入数据 | 输出数据 | 说明 |
---|---|---|
2 30 | 6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14 | PTA数据 |
2 10 | 6 = 1 + 2 + 3 | 随机打的 |
5 30 | 6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14 | 随机打的 |
1.2.4PTA提交列表说明
1.部门正确,我一开始以为是我定义变量和题目的字母冲突,然后改了字母,还是一样
2.部分正确,问了同学,是我的count没有赋值,导致count计数错误
二:代码互评
2.1.1同学代码
2.1.2自己代码
2.1.3相互对比
1.定义变量不同,因为后面运用的表达式不同,语句也不一样
2.他用的是if-else语句分情况讨论,比较清楚,我是直接用for语句解决问题,代码比较简单
2.2.1同学代码
2.2.2自己代码
2.2.3相互对比
1.定义变量不同,因为后面运用的表达式不同,语句也不一样
2.他用了for语句中我们表达式不一样,他是把情况列出来
3.他把那个和定义了一个字母,我是用if判断和是不是等于那个数,所以我们后面 printf不一样
三.学习总结
3.1学习进度条
周 | 这周花的时间 | 代码行 | 学到的知识简介 | 目前比较疑惑的问题 |
---|---|---|---|---|
第一周 | 3天 | 47 | 简单的编程 | 无 |
第二周 | 4天 | 55 | 常量,变量,数据类型和一些运算符以及赋值运算 | 无 |
第三周 | 4天 | 95 | 关系运算、if-else语句、格式化输入语句scanf(),以及常用的数学库函数 | 格式控制 |
第四周 | 4天 | 92 | 使用for循环语句实现指定次数的循环程序设计 | 循环的顺序 |
第五周 | 4天 | 85 | 对函数的定义和调用有初步的认识,能模仿编程 | 对函数题还不熟练 |
第六周 | 4天 | 152 | 学会多分支结构、字符型数据类型和逻辑运算符 | 字符型函数不太了解 |
第七周 | 4天 | 182 | 熟悉多分支结构switch语句的使用 | 怎么用switch语句简单些 |
第八周 | 3天 | 118 | 熟悉使用while和do-while结构解决问题 | 字符型再加上while语句不太会用 |
第九周 | 4天 | 196 | 熟悉break、continue的使用 ;熟悉使用循环的嵌套解决问题 | 嵌套问题还不是很会 |
3.2累积代码行和博客字数
3.3学习内容总结
3.3.1学习内容总结
3.3.2学习体会
1.感觉后面的代码越来越复杂,需要花的时间更多。
2.这周学习了循环嵌套,使循环的代码变得简单许多,这些代码循环还是蛮有意思的
3.学习了一个新的语句,continue的使用,continue语句虽然方便,但是它只能用于循环,而break语句使用范围就比较广
4.学习的东西越来越多,感觉很多都忘了,需要勤加复习,继续加油