| 这个作业属于那个课程 | C语言程序设计II |
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/10029 |
| 我在这个课程的目标是 | 熟悉使用for语句的循环嵌套结构,培养逻辑思维能力 |
| 这个作业在那个具体方面帮助我实现目标 | 了解常见的语法错误 |
| 参考文献 | 百度,《PTA系统常见问题及解答》,C Prime Plus,《C语言程序设计》 |
1.PTA实验截图

1.1打印九九乘法表

1.2数据处理
数据表达:
1.i,j分别表示行和列,其中j小于i,且i,j都为整型变量;
2.其中等号右边数字占4位、左对齐应该表示为"%d*%d=%-4d"
3.九九乘法表有九行,故要用printf("\n")语句;
数据处理:
伪代码:
Begin
include<stdio.h>
int main()
int N i j
scanf("%d",&N)
for i←1 to N
repeat
for j←1 to i
repeat
printf("%d*%d←%-4d" j i i*j)
printf("\n")
End
1.3实验代码截图

1.4造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 4 | 11=1 ,12=2, 22=4, 13=3 ,23=6 ,,33=9 ,14=4 ,24=8 ,34=1, 44=16 | 加以验证 |
| 1 | 1*1=1 | 增加实验结果的可靠性 |
| 2 | 11=1, 12=2 ,2*2=4 | 增加实验结果的可靠性 |
1.5PTA提交列表及说明

Q1:
- 1.显示答案错误,没有按题目的要求,“其中等号右边数字占4位、左对齐”未用正确的代码表示
2.根本没有用到for语句
A1:使用了for(i=1;i<=N;i++)和for(j=1;j<=i;j++),并用%-4d表示数字占四位
Q2:显示部分正确,for语句的循环嵌套结构没有使用对
A2:将printf("\n")语句放到for语句的最后面
说明:
1.熟悉使用for语句的循环嵌套结构解答本题的前提;
2.常用的表达方式在于平时的积累;
3.多加练习是学好C语言的方法;2.1换硬币

2.2数据处理
数据表达:
1.total:硬币总数量,count:换法个数,x代表数量,且都为整型变量,定义初始值count=0; 2.用i=x/5的格式代表该硬币的个数; 3.i*5+j*2+m*1==x用来判断他们的和是否等于数量;
数据处理:
伪代码:
Begin
include<stdio.h>
int main()
int total count i j m x
scanf("%d", &x)
count←0
for i←x/5
for j←x/2
for m←x/1
if(i5+j2+m*1←x)
printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n" i j m i+j+m)
count←count+1
printf("count ← %d" count)
End2.3实验代码截图

2.4造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 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:8,count = 4 | 加以验证 |
| 8 | fen5:1,fen2:1,fen1:1,total:4 ,count=1 | 增加实验结果的可靠性 |
2.5PTA提交列表及说明

Q1:
- 1.显示答案错误,i,j,m没有用表达式表示
- 2.没有判断条件if,不知道怎么使用for语句的循环嵌套
3.没有按题目的要求按顺序输出
A1:使用for语句的循环嵌套,i,j,m用表达式表示,并按题意的要求输出
Q2:显示格式错误,没有看清题中所给的输出样例
A2:fens与fens之间要空格,且count与%d之间也要空格
说明:
- 1.做题时要正确的理解题意,题意是解题的关键;
- 2.一些常见的语法错误虽然不能避免,但要知道是哪里出错了;
3.多加练习是学好C语言的方法;
3.代码互评
同学代码:

我的代码:

互评结果:
- 1.他的代码有n的取值范围(n>=1&&n<=9);
- 2.他的代码格式不规范,for语句后没有“{}”,而我的代码是按照格式来编写的;
3.相对于他的代码,我的代码的可靠性更高,更美观;
同学代码:

我的代码:

互评结果:
- 1.我的代码的行数比它的少,显得更简便一些;
- 2.他还每一个fen定义了初始值,并且还使用了system(“pause”);
3.相对于他的代码,我的代码的可靠性更高,更加直观;
3.学习总结
3.1学习进度条
| 周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较疑惑的问题 |
|---|---|---|---|---|
| 第一周 | 2小时 | 30行 | 如何空格,控制字符 | 编译的格式 |
| 第二周 | 2.5小时 | 40行 | 求华氏温度 | printf的使用方法 |
| 第三周 | 4.5小时 | 80行 | 分段函数的编写 | if-else不能灵活使用 |
| 第四周 | 2天 | 90行 | 循环语句for的使用 | 不会正确的变形,理不清题意 |
| 第五周 | 2天 | 200行 | 水仙花数的表示方法;个位数字平方和的表示方法 | 对陌生的概念不太了解,难以正确编程 |
| 第六周 | 2天 | 260行 | if与else语句与for语句的综合使用,逻辑运算符,字符型char | 题意与如何构思能力还有待提高 |
| 第七周 | 2天 | 220行 | switch语句的使用,以及一些常见的格式 | 不能正确的编程,如何解决问题的能力还有待提高 |
| 第八周 | 2天 | 230行 | 如何用do-while语句和while语句,并区分与for语句的不同地方 | 题意还是不能完全读懂,难以正确的编程 |
| 第九周 | 3天 | 280行 | 如何使用for语句的循环嵌套结构,并学了break与coutinue之间的区别 | 题意还是不能完全读懂,题意与如何构思能力还有待提高 |
3.2累计代码行和博客字数

3.3学习内容总结与感悟
思维导图:

内容总结:
- 明白一些常见的错误类型,如答案错误表示与题意输出的内容不符或输出的结果不同,编译错误常见的问题是标点符号不打或打错,运行超时的常见问题是输入了不要输入的内容,多种错误常见的问题是多定义了一些没有用到的变量,且再编程上还出现了语法错误;
- 学会如何用for语句的循环嵌套结构,典型的例子就是九九乘法表,如何用for语句的循环嵌套结构来表示行和列;
学会了break与coutinue之间的区别;
感悟:
- C语言是一门语言,要想学好学会就要多加练习,要从本质上分析问题并解决问题
- 学习过程中会遇到一些难题,这时就离不开老师与同学的帮助,多问还是有必要的
做题过程中会遇到许多未学过的知识,这就需要我们多看课外书并预习课本上还没教的知识
3.4学习体会
- C语言中如何正确使用for语句的循环嵌套结构,对于初学的我只能不断搜集资料;
- 有时我甚至连题意都没有弄懂,在同学的帮助下我还是明白了许多;
- 在这门功课上,我们需花大量的时间来练习并巩固已学知识;
- 同时我也希望老师在上课的时候多讲几个习题助于我们理解;
当然我也会去图书馆去阅读一些相关资料来提升自己。



