C语言|博客园08

断了今生、忘了曾经 提交于 2019-12-04 14:06:56
这个作业属于哪个课程 C语言程序设计1
这个作业的要求在哪里 http://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/9981
在这个课程的目标是 学会编写小程序
参考文献 《C 语言程序设计》《C Primer Plus》

1. PTA实验作业

1.1 题目名1 7-1 求整数的位数及各位数字之和

对于给定的正整数N,求它的位数及其各位数字之和。

1.1.1 数据处理

数据处理:定义整型变量n(输入值)

begin
定义变量n,i,sum
i←0,sum←0;
while(n不等于0时);
{
sum=sum+n%10;
n=n/10;
i++;
}
当n=0时output i,sum.
}
end

数据表达:使用while语句进入循环体。当n≠0时,使用表达式sum=sum+n%10,n/=10计算各位数字之和,i++自增计算整数的位数之和;当n=0时跳出循环。

1.1.2 实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
321 3 6 不超过10^9​​的正整数
2345 4 14 不超过10^9​​的正整数
111111111111 12 -47 超过10^9​​的正整数

1.4PTA提交列表及说明

提交说明
  1. 编译错误:没有将变量i,sum的初始值赋值为0;不等于的算数运算符马虎书写错误。
  2. 编译错误:调用的数学函数,没有加入"#include<stdio.h>"将相应的头文件包含到源程序中去。

    1.2 题目名2 爬动的蠕虫

    一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行.

    1.2.1 数据处理

    数据处理:定义整型变量n,u,d。

begin
输入变量s=1,n,u,d,count=0;
do
{
s+=u(蠕虫的累积爬行高度);
time++;
s←s-d(蠕虫休息时下滑的高度);
if s>=n 则跳出循环,output time;
else 继续do语句继续循环体;
end

数据表达:使用了do-while、if-else语句。

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
12 3 1 11 爬出井用了11分钟
34 5 1 17 爬出井用了17分钟
27 4 8 无数据 D>U不合逻辑

1.2.4 PTA提交列表及说明

提交说明
  1. 编译错误:没有理清题意将s(蠕虫的爬行高端也赋值为0,与蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了,数据处理不当)而出现逻辑错误。
  2. 编译错误:do-while语句的循环中止条件书写错误,也写成“(s<=n)”,而出现的逻辑错误。
  3. 编译错误:算数运算符“+=”(把右侧的值加到左侧变量上)的记忆错误。
  4. 编译错误:scanf语句中输出数据类型语段忘加分号。
  5. 编译错误:循环语句嵌套使用的条件书写不到位,出现莫名的逻辑错误。

    代码互评

    同学代码

自己代码

  • 同学的代码从代码行数看没有比我简洁。但从代码的字节数来看比我要简短很多。
  • 我只分了平年、闰年两部分对天数来进行计算,通过平年、闰年的每个月的累加天数进行程序计算,代码书写时需人工计算每个月的天数。繁琐麻烦。
  • 该同学则是,首先根据输入的年份判断是平年还是闰年,然后根据不同的月份日进行程序。
  • 从代码的简洁度来看,该同学的swith语句的掌握很好,数据处理到位,思路清晰直观。

    3. 学习总结

    3.1 学习进度条

    周/日期 所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    W7 15h 198 数据类型中的双精度浮点型double;算数运算符;选择结构if-else语句等 常用数据类型的区别
    W8 10h 87 循坏结构,算数运算符中的自增运算符 运算符的优先级顺序
    W9 10h 89 函数的声明、定义和调用 形参,实参的实质性区别
    W10 10h 112 熟悉并能运用多分支结构及if语句的镶嵌、字符型数据类型和逻辑运算符 各类语句的镶嵌用法
    W11 12h 145 运用switch语句处理多分支问题,掌握switch语句 多分支的分类怎样处理到位,语句怎样更简洁
    W12 11h 81 用while、do-while语句实现循环程序设计 while、do-while语句中循环体、循环语句的准确表达

    3.2 累积代码行和博客字数

3.3 学习内容总结

3.3.1 学习内容总结

  • while和for循环都是在循环执行之前检查循环条件是否满足,满足在进行循环体。而do-while循环既是在执行了循环体后在检查循环条件是否还满足。
  • 当循环涉及到初始化和更新变量时适合采用for循环。
  • 循环测试中的值在首次使用之前都需初始化。带关系运算符的表达式昌用于循环测试。
  • 逻辑运算符:(+=把右侧的值加到左侧变量上、/=把左侧的变量乘以右侧的值、%=左侧变量除以右侧值得到的余数)

3.3.2 学习体会

  • 这个星期讲解上周作业时,各路大佬现身“江湖”。满满的钦佩满满的羡慕。渺小的我要努力的地方太多太多。
  • 当所以的事情都凑合在一起需要去完成的时候,合理的分配时间就显得尤为重要。这周学习外的事情比较多,没有很好的做到合理的分配时间,要在前进的过程中认真吸取经验。
  • C语言的课后自主学习、练习很重要。。。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!