C语言I博客作业11

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/10130
我在这个课程的目标是 学会用正确的语法格式进行编程,锻炼能力,学好C语言,学会如何调用函数和定义函数
这个作业在那个具体方面帮助我实现目标 习题的练习,代码互评,思维导图的绘制,培养了思维逻辑能力
参考文献 百度,C语言程序与设计,C Prime Plus

1.PTA实验作业

1.1题目一:统计某类完全平方数

1.2数据处理

数据表达:result,sum,i,m,flag为整形变量,其中sum,flag定义初始值;并用了for和while的循环语句,还用了if语句,根据题目要求满足条件则return1,否则 return0;if(pow(result,2)==N)这条语句判断该值是否等于N,缩小范围。

数据处理:

伪代码:
int IsTheNumber(const int N)
int result,sum,i,m,flag //定义变量
sum=0;
flag=0; //定义初始值
m=N;
if(N<0) //作为判断条件
return 0;
else
result=sqrt(N); //求平方根
if(pow(result,2)N)
for(i=0;i<=9;i++)
while(!(m
0))
if(m%10i) //寻找相应的数
sum++;
m=m/10
if(sum>=2)
flag=1;
m=pow(result,2);
sum=0;
if(flag
1) //作为判断标志
return 1;
return 0
End

1.3PTA实验代码截图


1.4PTA提交列表及说明

说明:在做这些题的之前,我会在Dev-C++上做到答案正确才把答案写上去,故没有什么错误;但有一些重要的语法点还是要知道的:本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等;开始时在Dve-c++上输入题目的输入题目的输入样例后发现输出来的cnt为12不符合输出样例,然后不断讲输入的范围减小发现一个不符合条件的数169让cnt增加了一,然后进行调试,在自定义函数那里设置断点输入169 169,添加查看变量flag,i,cnt,不断点击下一步,发现当i=9的时候flag还是等于0,继续点击下一步发现在经过if(flag=1)后flag突然等于1然后进入了if语句内返回了1,然后发现if(flag=1)应改为if(flag==1);

1.5造测试数据

输入数据 输出数据 说明
105 500 cnt = 6 验证是否正确
108 600 cnt = 6 增加实验结果的可靠性
225 800 cnt =5 增加实验结果的可靠性
1.1.1题目二:统计各位数字之和是5的数

1.1.2数据处理

数据表达:i,sum,cnt用整型变量定义,其中sum,cnt定义初始值为0;运用了if-else的嵌套结构,循环语句for,调用两个函数void count_sum(int a,int b)和int is(int number);最后用语句if(s==5)作为判断条件,成立return 1不成立return 0;

数据处理:

伪代码:
void count_sum(int a,int b)
int i,sum,cnt; //定义变量
sum←0; //定义初始值
cnt←0;
for i←a to b //作为循环条件
if(is(i))
cnt←cnt+1;
sum←sum+i; //累加,计数
printf("count ← %d, sum ← %d",cnt,sum); //输出对应的数
int is(int number)
int m,n,s; //定义变量
s←0;
n←number;
while(!(n←0)) //作为判断循环是否终止
m←n%10;
n←n/10;
s←s+m;
if(s←5) //判断条件是否成立
return 1;
else
return 0;
End

1.1.3实验代码截图

1.1.4造测试数据

输入数据 输出数据 说明
104 999 104 is counted.count = 15, sum = 3720 验证是否正确
203 888 203 is counted.count = 10, sum = 3110 增加实验结果的可靠性
500 666 500 is counted.count = 1, sum = 500 增加实验结果的可靠性

1.1.5PTA提交列表及说明

Q1:格式错误,该空格的地方没有空格

A1:正确格式为printf("count = %d, sum = %d",cnt,sum),因为输入样例和输出样例给出的数据空了格

说明:在做这些题的之前,我会在Dev-C++上做到答案正确才把答案写上去,故没有什么大的错误;有些地方我还是值得学习的,如改了几次才知道是第二个函数中间函数出了问题,于是把第二段函数全删了,重新弄(有过忘记打上计数的代码、忘记给变量赋值);while语句终止条件错误,写成了n!=0。

2.代码互评

同学代码:

我的代码:


互评结果:

  • 他的代码更加简洁,主要是用了数组的有关知识;
  • 现阶段,我的代码更能让人理解;
  • 通过这次比较,我还许多方面向他学习;

同学代码:

我的代码:

互评结果:

  • 总体内容上差不多,只是调用的函数的顺序不同;
  • 一些较长的单词我还是建议用一个字母进行表示,方便;
  • 他使用的是do-while语句,而我的是while语句,结构上有些区别;

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天 300行 if-else,coutinue,break,for循环嵌套的综合应用 难以编程出与题意相符的代码,如何解决问题的能力还有待提高
第十一周 4天 400行 函数的定义与调用,全局变量和局部变量的定义,变量的生存期及作用域 如何调用函数,怎样区分局部变量和全局变量

3.2 累积代码行和博客字数

思维导图:

内容总结:

  • 明白一些常见的错误类型,如答案错误表示与题意输出的内容不符或输出的结果不同,编译错误常见的问题是标点符号不打或打错,运行超时的常见问题是输入了不要输入的内容,多种错误常见的问题是多定义了一些没有用到的变量,且再编程上还出现了语法错误;
  • 学会如何用整型,浮点型,字符型定义变量,并学会用从字符A开始的语句,运用for语句的循环嵌套结构解题;
  • 函数的调用和定义是一个难点,全局变量和局部变量怎样区分,静态变量和动态变量的区别;
  • 数据区分为静态存储区和动态存储区,其中自动变量只能在函数内或复合语句中;

3.3感悟:

  • C语言是一门语言,要想学好学会就要多加练习,要从本质上分析问题并解决问题
  • 学习过程中会遇到一些难题,这时就离不开老师与同学的帮助,多问还是有必要的
  • 做题过程中会遇到许多未学过的知识,这就需要我们多看课外书并预习课本上还没教的知识
  • 重要的是逻辑思维能力的培养,但又是一个难点,需要我们平时不断去摸索,运用所学的知识灵活的解决问题;

3.4学习体会

  • C语言中如何正确使用for语句的循环嵌套结构和coutinue,break的综合应用,对于初学的我只能不断搜集资料;
  • 函数的调用和定义把前面所学的知识都汇聚到了一起,对于我们只能慢慢的去理解,多想想老师上课所讲的内容;
  • 有时我甚至连题意都没有弄懂,在同学的帮助下我还是明白了许多;
  • 在这门功课上,我们需花大量的时间来练习并巩固已学知识;
  • 同时我也希望老师在上课的时候多讲几个习题助于我们理解;
  • 当然我也会去图书馆去阅读一些相关资料来提升自己;
posted @ 2019-12-06 11:01  小研说技术  阅读(286)  评论(0编辑  收藏  举报