C语言Ⅰ博客作业09

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/10029
我在这个课程的目标是 熟练掌握C语言基础
这个作业在哪个具体方面帮助我实现目标 掌握C语言知识,有效的完成PTA作业
参考文献 C语言程序设计,百度

1.PTA实验作业

1.1 题目名1

下面是一个完整的下三角九九口诀表:
1*1=1   
1*2=2   2*2=4   
1*3=3   2*3=6   3*3=9   
1*4=4   2*4=8   3*4=12  4*4=16  
1*5=5   2*5=10  3*5=15  4*5=20  5*5=25  
1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  
1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  
1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  
1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81  
本题要求对任意给定的一位正整数N,输出从1*1到N*N的部分口诀表。
输入格式:
输入在一行中给出一个正整数N(1≤N≤9)。
输出格式:
输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。
输入样例:4
输出样例:
1*1=1   
1*2=2   2*2=4   
1*3=3   2*3=6   3*3=9   
1*4=4   2*4=8   3*4=12  4*4=16 

1.1.1数据处理

数据表达:用了n,j,i三个变量,i,j的值是通过不断循环得到,n的值是输入的,都是整型变量。
数据处理:
伪代码:
int i,j,n;                        /*定义三个整型变量,i,j,n*/
scanf ("%d", &n);                 /*调用scanf()函数输入范围1-9内的任意一位正整数n*/
for i←1 to n                      /*嵌套循环,外层循环执行n次,求累加和*/
do for j←1 to i                   /*内层循环重复i次,算出结果*/
do printf ("%d*%d←%-4d",j,i,j*i); /*其中“%-4d”表示等号右边数字占4位、左对齐*/
printf ("
");                    /*输出下三角n*n部分口诀表*/

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
4 与题目样例一样正确
5 随机取1-9之间的数检验代码是否运行正确

1.1.4 PTA提交列表及说明

1.编译错误:j=1后面多了一个/,去掉后部分正确;
2-3.部分正确:第十行中代码里面是“i,j,i*j”,其顺序不合题意,将i,j位置换了之后,答案正确;
4.答案正确。

1.2 题目2

将一笔零钱换成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.2.1 数据处理

数据表达:用了x,count,i,j,a个变量,i,j,a,count的值通过不断循环得出,x的值是输入的,都是整型变量。
数据处理:
伪代码:
int x,count,i,j,a;                                                 /*定义五个整型变量,i,j,x,count,a*/
count←0                                                            /*变量初始化*/
scanf ("%d",&x);                                                   /*调用scanf()函数输入(8,100)的任意一位零钱数额x*/
for i←x/5 downto 0                                                 /*循环嵌套,开始循环*/
do for j←x/2 downto 
do for a←x downto 0
do IF 5*i + 2*j + a= x THEN                                        /*若符合该条件,则进行以下程序*/
do  printf("fen5:%d, fen2:%d, fen1:%d, total:%d
",i,j,a,i+j+a); 
count←count+1
END IF
printf("count ← %d",count);                                       

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
13 与题目样例一样正确
20 随机取(8,100)之间的正整数检验代码是否运行正确
30 随机取(8,100)之间的正整数检验代码是否运行正确

1.2.4 PTA提交列表及说明

1.编译错误,12行没有打换行符"
",加上后编译错误
2.编译错误,发现等于符号用成了=,没有用==,改正后编译错误
3.编译错误,for语句后面都没有打{},加上去后还是编译错误
4.编译错误,把错误信息翻译了一下,说i,j,a没有声明,我不太懂是什么意思,就把它们都变量初始化,赋值为0,可是还是编译错误
5.编译错误,感觉可能是空格的错误,改了一下,不过还是编译错误
6.编译错误,感觉有时候for语句中的i,j,a可以不用int,就把它们删了,可是还是错的
7.编译错误,重新把i,j,a加上去后,还有一些空格去掉后,答案错误
8.答案错误,发现最后printf()里是"%d", count的格式不合题意,改成"count = %d",count后正确了
9.答案正确。

2.代码互评

同学代码截图1 自己代码截图
同学1和我的代码里面都用了循环嵌套,不过同学1在for循环里面用了if语句,其实我没太看懂!感觉这个其实麻烦一点!用一个“%-4d”就直接ok了。
同学代码截图2 自己代码截图
   他只用了两个for语句,没有用if语句,感觉同学2写的代码比较麻烦,我看的不太懂,x=x-8不知道这个是什么意思,自己的代码比较明了一点!

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第13周/11.22 两天 99 循环嵌套,break语句,continue语句 伪代码的正确示范?打代码时什么时候要空格,什么时候不要
第12周/11.14 两天 107 whlie语句,do-whlie语句的使用方法,伪代码 不太清楚字符型的使用方法
第11周/11.9 一天 137 switch语句 scanf语句在int后面和在for或其他语句后面有什么区别吗
第10周/11.4 一天 112 if语句的嵌套,字符型,逻辑运算符 怎么活用已学知识点做PTA
第9周/10.25 一天半 88 函数的定义,调用 “/=”是什么意思
第8周/10.18 两天左右 84 循环结构,for语句 在Dev-C++里面正确的代码到PTA上是答案错误怎么解决
第7周/10.8-10.12 两天左右 49 scanf()函数,if-else语句,常用的数学函数,关系运算符... PTA作业怎么能好好的做完!

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会

这周写代码学到了一些新知识,“%-4d”是数字占4位、左对齐的意思;“for i←1 to n do”是伪代码中For循环的一种,表示for(i=1;i⇐n;i++){};“for i←n 
downto 1 do”表示for(i=n;i>=1;i–){};还有就是伪代码中“==”用“=”表示。可是对于伪代码我还是不太清楚,正确的格式到底是怎样的?我发现每周打代码 
出现的错误都会有因为空格多或少错,不太理解为什么?上周我翻了翻以前写的博客,第一次博客作业里我的大一规划写着“每天花2小时编程,代码量达到每天15 
行;每天记25个单词,为4级英语做准备”,现在好像没有做到过,哈哈哈,有点搞笑。希望自己认真一点吧!
原文地址:https://www.cnblogs.com/dengjiamei/p/11905933.html