C语言1博客作业09


问题 答案
这个作业属于哪个课程 C语言程序设计1
这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2
我在这个课程的目标是 熟练的掌握计算机的一些技能
这个作业在那个具体方面帮助我实现目标 在的练习过程中找到感觉,让我对本次的知识点更加熟悉
参考文献 《C语言程序设计1》

1PTA实验作业

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数据处理

数据表达:我定义了X,a,b,c,total,count这些变量,变量的值都是随着X的变化而变化,都是整形变量。
数据处理:(伪代码)
#include<stdio.h>
int main()
{
int x, a, b, c , i, count, total; 定义变量
scanf("%d", &x); 接收X
a=x/5; 赋值
b=x/2; 赋值
c=x; 赋值
count=0; 赋值
for(a;a>0;a--) { 用for循环的嵌套
for(b;b>0;b--) {
for(c;c>0;c--) {
if(a5+b2+c==x) {
printf("fen5:%d,fen2:%d,fen1:%d,total:%d\n",a, b, c,a+b+c); 输出结果
count++; 次数相加
printf("count = %d", count);
return 0; 返回
}

1.1.2实验代码截图

1.1.3造测试数据


输入数据 输出数据 说明
13 fen5:2, fen2:1, fen1:1, total:4fen5:1, fen2:3, fen1:2, total:6fen5:1, fen2:2, fen1:4, total:7fen5:1, fen2:1, fen1:6, total:8count = 4 题目值
14 fen5:2, fen2:1, fen1:2, total:5fen5:1, fen2:4, fen1:1, total:6fen5:1, fen2:3, fen1:3, total:7fen5:1, fen2:2, fen1:5, total:8fen5:1, fen2:1, fen1:7, total:9,count = 5 随机的
10 fen5:1, fen2:2, fen1:1, total:4fen5:1, fen2:1, fen1:3, total:5count = 2 随机值

1.1.4PTA提交列表及说明


编译错误:在赋值时有点小问题,那个啊a,b,c在for循环里面不能那样写,不能写在外面,要写在for循环里面使用,而不是用一个i。。
改正方法:把外面的赋值语句拖到for循环里面,并且取消i这个变量。

1.2

美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!
输入格式:
输入在一行中给出正方形边长N(3≤N≤21)和组成正方形边的某种字符C,间隔一个空格。
输出格式:
输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。
输入样例:
10 a
输出样例:
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa

1.1.2数据处理

数据表达:我定义了n,i,j,a这些变量,值由人去赋,n,i,j是整形变量,a是字符型变量。
数据处理:(伪代码)
  #include<stdio.h>

int main()
{
int n,i,j; 定义变量
char a; 定义字符型变量
scanf("%d ",&n); 接受变量
scanf("%c",&a);
if(n%2==0) 判断是否为偶数
for(i=1;i<=n/2;i++) 用for循环
{
for(j=1;j<=n;j++) 嵌套
{
printf("%c",a); 输出
}
printf("\n");
}
if(n%2!=0) 判断为基数
for(i=1;i<=(n+1)/2;i++) for循环
for(j=1;j<=n;j++)
printf("%c",a); 输出
printf("\n"); 换行
return 0; 返回

1.2.2实验代码截图

1.1.3造测试数据


输入数据 输出数据 说明
10 a aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa 题目值
8 b bbbbbbbb bbbbbbbb bbbbbbbb bbbbbbbb 随机值
6 d dddddd dddddd dddddd 随机值
(没办法打成竖的,只能打成横的)

1.2.4PTA提交列表及说明


部分正确:在最后printf输出结果时没有仔细注意题目要求,导致输出结果不对。
改正方法:把printF里面的结构按照题目要求换行和输出字符。

2.代码互评

同学代码截图


自己代码截图

不同点

1.她的代码在开始时使用了这个X=X-8,我没有,说实话我觉得这个其实没有很大的必要吧,这个应该是去控制范围的,题目说8<X<21,所以就有这个。
2.我跟她定义的函数变量不同,在总体思路排版也有很大区别,我直接3个for写在一起,她是分开而且只有2个。

同学代码截图


自己代码截图

不同点

1.他的思路和排版方式和我刚开始时一样,但是后面我一直是答案错误就换了一种方式,看了他的我知道哪里错了,导致我现在写的比较多。
2.他没有直接分奇数和偶数,我分了,所以还用到了两个if结构,比他的相当于多了一倍的代码行数。

3.学习总结

3.1学习进度条


周/日期 这周所花时间 代码行数 学到的知识点简介 目前比较迷惑的问题
第一周作业9/月20号 2小时 45行 学会了输出hello-world 空格键把握不准
第二周作业9/月29号 1个半小时 40行 学会了华氏度转换为摄氏度 没发现
第三周作业/10月10号 4小时 60行 学了if-else语句 scanf的用法不是很会
第四周作业 10月16号 8小时 100行 学到了华氏度转换为摄氏度,后面又学了for循环
第五周作业/10月26号 6小时 75行 学会了如何定义函数 还不能准确的去定义函数,实参和形参的区别
第六周作业/11月2号 7小时 135行 学了if-else的镶嵌结构 for循环和if-else的结合有点不会
第七周作业/11月8号 5小时 100行 学了switch结构 有时不知道什么时候switch结构里面要加printf这种
第八周作业/11月15号 3小时 80行 学了while循环结构和do-while结构 有的题目不知道该如何选用while和for循环
第九周作业/11月22号 6小时 85行 学了for循环的嵌套语句 搞不清楚for循环嵌套的原理

3.2累计代码行和博客字数

3.3学习内容总结与学习感悟

3.3.1学习内容总结

请用思维导图的方式把目前所学的知识进行整理

3.3.2学习体会

在这一周的学习当中感觉在课上的感觉还不错,但是不知道为什么一回来写PTA时就感觉不太行,这个可能也与我自身的原因有关,星期二的课,我觉得当天做最有效果,每次都是拖到星期五来写,导致一看题目就开始发蒙,不知道该如何从题目入手,想了半天可能也只是做了最简单的一个题目,越到后面就越不会,加上今天生病,弄得心态不太好了,在下一周我一定要努力赶上老师的节奏。。
posted @ 2019-11-22 21:52  横扫僵尸  阅读(252)  评论(7编辑  收藏  举报