C语言I博客作业09
||
-|-|
这个作业属于那个课程|C语言程序设计II
这个作业要求在哪里|作业要求
我在这个课程的目标是|会使用c语言进行编程序
这个作业在那个具体方面帮助我实现目标|写PTA作业,帮助自己进行总结
参考文献|完数
1.PTA实验作业
1.1换硬币
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
输入格式:
输入在一行中给出待换的零钱数额x∈(8,100)。
输出格式:
要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。
输入样例:
13
输出样例:
fen5:2, fen2:1, fen1:1, total:4
fen5:1, fen2:3, fen1:2, total:6
fen5:1, fen2:2, fen1:4, total:7
fen5:1, fen2:1, fen1:6, total:8
count = 4
1.1.1数据处理
数据表达:定义整型变量money, fen5, fen2, fen1, total, count,money为输入的钱数,fen5为5分钱的个数,fen2为5分钱的个数,fen1为1分钱的个数,total为每种换法硬币的个数,count为多少种换法。
数据处理:
定义整型变量money, fen5, fen2, fen1, total, count,money为输入的钱数,fen5为5分钱的个数,fen2为5分钱的个数,fen1为1分钱的个数,total为每种换法硬币的个数,count为多少种换法。
输入多少钱money;
计算5分钱最多能有多少个 fen5;
for (fen5; fen5 >= 1; fen5--)
for (计算2分硬币个数 fen2; fen2 >= 1; fen2--)
算出1分硬币的个数;
计算总几个硬币;
count累加;
输出5分硬币几个2分硬币几个1分硬币几个 共几个硬币;
end for
end for
输出多少种换法;
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
8 | fen5:1, fen2:1, fen1:1, total:3 count = 1 | 8分换取零钱有1种方法 |
10 | fen5:1, fen2:2, fen1:1, total:4 fen5:1, fen2:1, fen1:3, total:5 count = 2 |
10分换取零钱有2种方法 |
1.1.4 PTA提交列表及说明
提交列表说明:
这题主要还是个循环的问题,先保证每种硬币都有一个,然后从5分的硬币开始减,最后减到1,再从2分的硬币开始减,减到0循环结束。
1.2 找完数
所谓完数就是该数恰好等于除自身外的因子之和。例如: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数据处理
数据表达:定义整型变量m, n, i, k, j, a, num,m和n为输入的数,i、k和j都用于循环,a用于判断有没有完数,num用于算完数的因子和。
数据处理:
定义整型变量m, n, i, k, j, a, num,m和n为输入的数,i、k和j都用于循环,a用于判断有没有完数,num用于算完数的因子和。
输入m和n;
for (i = m; i <= n; i++)
for (k = 1; k < i; k++)
if i % k == 0 then
num累加k;
end for
if num == i
{
输出"完数 = 1";
for (j = 2; j < i; j++)
if i % j == 0 then
输出" + 因子数";
end for
换行;
a累加;
}
num赋值为0;
end for
if a == 0 then
输出None;
1.2.2实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
1 6 | 6 = 1 + 2 + 3 | 1到6这个范围完数只有6 |
2 30 | 6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14 |
2到30这个范围完数有6和28 |
1.2.4 PTA提交列表及说明
提交列表说明:
部分正确:没有考虑范围内没有完数的情况,最后加上没有完数就输出None
。
1.3跟奥巴马一起画方块
美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!
输入格式:
输入在一行中给出正方形边长N(3≤N≤21)和组成正方形边的某种字符C,间隔一个空格。
输出格式:
输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。
输入样例:
10 a
输出样例:
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
1.3.1数据处理
数据表达:定义整型变量n, i, j, num,定义字符型变量c,i和j用于循环,n为输入的整数,c为输入的字符,num为四舍五入后的行数。
数据处理:
定义整型变量n, i, j, num,定义字符型变量c,i和j用于循环,n为输入的整数,c为输入的字符,num为四舍五入后的行数。
输入整数n和字符c;
计算行数进行四舍五入;
for (i = 0; i < num; i++)
for (j = 0; j < n; j++)
输出c;
end for
换行;
end for
1.3.2实验代码截图
1.3.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
4 a | aaaa aaaa |
输出了个累矩形 |
4 * | **** **** |
输入什么符号就输出什么符号 |
1.3.4 PTA提交列表及说明
提交列表说明:
部分正确:四舍五入时用n/2,整数除以整数为整数,做不到四舍五入,后面改成了n/2.0,转换成浮点型。
2.代码互评
同学代码截图
自己代码截图
1.他用了3层循环套用,第一层用来处理5分钱的,第二层处理2分钱的,第三层处理1分钱的
2.我是套用了2层循环,先在最外面进行5分钱的处理,再进入循环跟他的就差不多了,我是把硬币总数算出来再输出,他是直接输出的
同学代码截图
自己代码截图
1.我的四舍五入跟他的四舍五入不同,我是浮点型计算加0.5然后转整型,他是写了个判断条件加1。
2.我们的循环嵌套都是一样。主要不同就是四舍五入的算法
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第四周 | 10 | 50 | 学会了简单输出 | 无 |
第五周 | 20 | 100 | 学会了输入 | 无 |
第六周 | 10 | 150 | 学会了if-else | 无 |
第七周 | 5 | 80 | 学会了for | 无 |
第八周 | 30 | 300 | 学会了switch语句r | 对char的用法还不怎么会 |
第九周 | 20 | 335 | 简单的了解了函数的使用 | 自定义函数还不太会 |
第十周 | 20 | 343 | 学习了指针 | 还不知道指针具体的用处 |
第十一周 | 25 | 503 | 学习指针 | 感觉指针好难啊 |
第十二周 | 30 | 489 | 学习了结构体 | 指针还是不会 |
第十三周 | 30 | 265 | 学习了预处理 | 预处理的套用比较多,多层套用不会 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
这周讲了continue和break的用法,continue是结束本次循环,直接进行下次循环,break是直接结束循环。
c语言的语法就那么几条,写题目也就用那几条语法,但当这些语法互相嵌套时就会变得复杂,现在做题也就是这几个语法套用。只要多刷题题目类型见多了,做题目就简单了。目前我还处于刷题阶段,我的目标是能写出程序,但现在还没有任何程序方面的接触。