C语言I博客作业09

这个作业属于那个课程 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=12 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(i*5+j*2+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)
End

2.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语句的循环嵌套结构,对于初学的我只能不断搜集资料;
  • 有时我甚至连题意都没有弄懂,在同学的帮助下我还是明白了许多;
  • 在这门功课上,我们需花大量的时间来练习并巩固已学知识;
  • 同时我也希望老师在上课的时候多讲几个习题助于我们理解;
  • 当然我也会去图书馆去阅读一些相关资料来提升自己。
原文地址:https://www.cnblogs.com/hunanloudi/p/11907355.html