C语言I博客作业09
| 这个作业属于哪个课程 | C语言程序设计II |
|---|---|
| 这个作业要求在哪里 | http://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10027 |
| 我在这个课程的目标是 | 熟练掌握嵌套结构 |
| 这个作业在那个具体方面帮助我实现目标 | 进一步掌握嵌套和continue |
| 参考文献 | 百度百科、primer plus |
1.PTA实验作业

1.1题目名:
美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!
1.1.1数据处理
数据表达:定义整形变量n,i,j和字符型变量a
数据处理:运算开始
输入变量n
输入变量'a'
if n%2余数为0
for i=1;i<=n/2;i++
{
for(j=1;j<=n;j++)
{输出a
}
输出 空行
}
if n%2余数不为0
for(i=1;i<=(n+1)/2;i++)
{
for j=1;j<=n;j++
{
输出a
}
输出空行
}
end
}
1.1.2实验代码截图

1.1.3 造测试数据
| 数据输入 | 数据输出 | 说明 |
|---|---|---|
| 4 | aaaa | 输入偶数 |
| 5 | aaaaa | 输入奇数 |
1.1.4 PTA提交列表及说明

部分正确:在初次尝试时处理单数时,用了n-1但答案错误
解决办法:参照同学代码后发现按四舍五入取整办法改为为n+1解决
1.2 题目名
所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数
1.2.1数据处理
数据表达:用了整形变量n,i,j通过直接输入得到,flag直接赋值定义为常量
数据处理:
输入m,n;
for i=m;i<=n;i++
{ sum ← 1;
if i←0 跳过
for j=2;j<i;j++
{ if i除以j的余数为0
sum ←sum+j;
if sum=i
{ 输出完数 = 1 ; /保证1的正常输出/
for j=2;j<i;j++ /j从2开始自增避免1的重复输出/
if i除以j的余数为0
{ 输出+ 因子 /+是为了实现输出的因子形成等式/
输出回车;
对输出的因子进行计数;
}
}
if 因子数为0
输出None
}
End (算法结束)
1.2.2 实验代码截图

1.2.3 造测试数据
| 数据输入 | 数据输出 | 说明 |
|---|---|---|
| 2 3 | None | 尝试无完数 |
| 6 28 | 6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14 | 随机赋值 |
| 2 500 | 6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14 496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248 | 尝试较大数 |
1.2.4 PTA提交列表及说明

部分正确:for语句后面使用;使代码运行错误
解决办法:在借用同学的dev c++运行后发现多了一个分号后改过来
2.代码互评
同学代码1

我的代码1

1我用了continue结构但他仅仅用了for和if解决
2我用的是常规的变量他运用了数组长度为1000的数组number
3他最初定义一个常量count=-1我的是flag=0
同学代码2

我的代码2

1他在定义变量时最初便给fen5, fen2, fen1定义了常量方便运算,我则是整形变量
2他在输出printf前先算了total我在printf中表示
3他的变量定义太复杂我的更简洁,运算方式也差不多
3.学习总结
3.1 学习进度条
| 周/日期 | 这周所花的时间 | 代码行 | 学习到的知识点简介 | 目前比较疑惑的问题 |
|---|---|---|---|---|
| 10/8-10/12 | 10小时 | 120 | if-else语句和输入输出格式 | 变量问题,输入输出格式 |
| 10/12-10/18 | 8小时 | 126 | for语句和输入输出格式 | 公式的表达 |
| 10.18-10.25 | 8小时 | 130 | 自定义函数来编程和生成乘方表和阶乘表 | 函数的调用 |
| 10.25-11.1 | 8小时 | 139 | 关系符和逻辑符号 | 各个符号之间的优先级不明确 |
| 11.1-11.7 | 8小时 | 115 | switch语句 | for和switch之间变换 |
| 11.7-11.14 | 7小时 | 140 | while语句 | do-while和while的区别 |
| 11.14-11.21 | 8小时 | 145 | 嵌套和continue | continue的使用条件 |
3.2 累积代码行和博客字数

3.3 学习内容总结和感悟
3.3.1 学习内容总结

3.3.2 学习体会
这一次的嵌套,是最感到学得吃力的一次,continue也因为和前面的break有些相似而概念混淆,考试的日子已经越来越近,我的代码输入却还在一定程度上需要依靠书本,尽管学的几种结构也不是不懂,但如果连在一起使用,用法上的冲突一不小心就会导致自己的代码编译错误,现在唯一的解决办法就是多翻翻书勤加练习了

浙公网安备 33010602011771号