(一)改错题

输出三角形的面积和周长,输入三角形的三条边a、b、c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数);否则,输出“These sides do not correspond to a valid triangle”。

输入输出样例1:

  Enter 3 sides of the triangle: 5 5 3

  area = 7.15; perimeter = 13.00

输入输出样例2:

  Enter 3 sides of the triangle: 1 4 1

  These sides do not correspond to a valid triangle

源程序(有错误的程序)

1,编译:



错误信息:

错误原因:用到函数sqrt时后面的式子没有用"()"括起来。

改正方法:用到函数sqrt时后面的式子要用"()"括起来。

2,编译:

错误信息:

错误原因:if 后没有用到大括号。

改正方法:if后加上大括号。

3,再次编译:



运行:

出现错误。

错误信息:

错误原因:不应该用"||"。

改正方法:将"||"改为"&&“。

4,再次编译



运行:



(二)学习总结

1.在编程解决问题的过程中,我们会用到多个if语句,if...else if... 语句以及switch语句,查阅资料,总结一下这三种情况的区别何在,并分别举例加以说明。禁止大段复制,要自己对资料进行归纳总结,并给出你参考的资料链接。

2.对其他你认为需要进行总结的内容进行总结。

答:多个if是所有的if都会进行判断,如果是真,则执行if体,否则跳过if体,继续执行后续语句。

if...else if... 都是一路程序分支,实际上是if-else结构的变种。

if...else当判断表达式为真时,执行if体;当判断表达式为假时,执行else体。

switch体是一个复合语句,该复合语句包含若干个case语句和一个default语句,default语句也可以省略写。switch写起来比较整齐,而且如果程序大的话,用switch很好写.switch的case语句如果不写break;就会往下执行,这样有时候又可省写很多. 如果项比较少的时候,建议用if。

假如判断的过多,用switch效率比if更高。

(三)实验总结

1(1)题目

本题要求编写程序将一个百分制成绩转换为五分制成绩。转换规则:

•大于等于90分为A;

•小于90且大于等于80为B;

•小于80且大于等于70为C;

•小于70且大于等于60为D;

•小于60为E。

输入格式:

输入在一行中给出一个整数的百分制成绩。

输出格式:

在一行中输出对应的五分制成绩。

(2)流程图

(3)源代码

(4)实验分析

问题1:

原因:switch的case语句没写break,一直往下执行。

解决办法:在每次case语句结束后,分行写下break;

(5)本题PTA提交列表

2(1)题目

7-5 三角形判断(10 分)

给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。

输入格式:

输入在一行中顺序给出六个[−100,100]范围内的数字,即三个点的坐标x1​、y1​、x2​、y2​、x3、y3​。

输出格式:

若这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周长和面积,格式为“L = 周长, A = 面积”,输出到小数点后2位。

(2)流程图



(3)源代码

(4)实验分析

问题1:

原因:运用sqrt时没有把要开方的式子用括号括起来。

解决方法:在sqrt后的式子加上括号。

(5)本题PTA提交列表

3(1)题目

7-7 两个数的简单计算器(10 分)

本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。

输入格式:

输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数据类型为整型,且保证除法和求余的分母非零。

输出格式:

当运算符为+、-、*、/、%时,在一行输出相应的运算结果。若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR。

(2)流程图



(3)源代码

(4)实验分析

问题1:

原因:粗心拉掉了 若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR,这一步。

解决方法:在switch最后中加入default:printf("ERROR") ;

exit(0);

(5)本题PTA提交列表

  1. (1)题目

    7-9 求一元二次方程的根(10 分)

本题目要求一元二次方程的根,结果保留2位小数。

输入格式:

输入在一行中给出3个浮点系数a、b、c,中间用空格分开。

输出格式:

根据系数情况,输出不同结果:

1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小;

2)如果方程有两个不相等复数根,则每行按照格式“实部+虚部i”输出一个根,先输出虚部为正的,后输出虚部为负的;

3)如果方程只有一个根,则直接输出此根;

4)如果系数都为0,则输出"Zero Equation";

5)如果a和b为0,c不为0,则输出"Not An Equation"。

(2)流程图



(3)源代码



(4)实验分析

计算复杂,实根虚根听了很多看了一些 自己做题并不很懂。

(5)本题PTA提交列表

(四)博客互评

1

大鱼会飞(李水心):http://www.cnblogs.com/lsx123/p/7780863.html

内容清楚,向你学习,共同努力!

2

☀☀(马太阳):http://www.cnblogs.com/myg123/p/7784651.html

标注清楚,语言精练,向你学习。

3

陈魔(刘苗苗):http://www.cnblogs.com/liumiaomiao520/p/7753982.html

错误表住的很清楚,总结到位,认真的态度值得我去学习。

第四次C语言作业的更多相关文章

  1. OO第四次博客作业!

    oo第四次博客作业 一.测试与正确性论证比较 测试只是单方面片面的证明对于当前的输入程序是正确的,测试只能证明程序有错误,不能说明程序是对的. 正确性论证是程序达到预期目的的一般性陈述,是通过规范化的 ...

  2. OO第四次博客作业--第四单元总结及课程总结

    一.总结第四单元两次作业的架构设计 1.1 第一次作业 类图如下: 为了突出类.接口.方法.属性.和参数之间的层次结构关系,我为 Class 和 Interface 和 Operation 分别建立了 ...

  3. Perl,Python,Ruby,Javascript 四种脚本语言比较

    Perl 为了选择一个合适的脚本语言学习,今天查了不少有关Perl,Python,Ruby,Javascript的东西,可是发现各大阵营的人都在吹捧自己喜欢的语言,不过最没有争议的应该是Javascr ...

  4. 逆向知识第十四讲,(C语言完结)结构体在汇编中的表现形式

    逆向知识第十四讲,(C语言完结)结构体在汇编中的表现形式 一丶了解什么是结构体,以及计算结构体成员的对其值以及总大小(类也是这样算) 结构体的特性 1.结构体(struct)是由一系列具有相同类型或不 ...

  5. C语言作业评价标准

    C语言作业评价标准 作业内容: 每周作业分为基础作业.挑战作业和预习作业: 基础作业为本周所学内容的巩固: 挑战作业包括但不仅限于所学知识的综合运用: 预习作业为下周所学内容的任务单,要求必须在课前完 ...

  6. 2017-2018-1 JaWorld 第四、五周作业

    2017-2018-1 JaWorld 第四.五周作业 两周工作内容 小组讨论并确定最终的app雏形 合作完成需求说明书 工作分工 成员 分工 比例 陈是奇 1.引言 8% 马平川 2.1-2.5 产 ...

  7. 2017-2018-1 JAVA实验站 第四、五周作业

    2017-2018-1 JAVA实验站 第四.五周作业 JAVA实验站小组成员 学号 名字 职务 20162318 张泰毓 组长 20162303 石亚鑫 组员 20162304 张浩林 组员 201 ...

  8. 第一次c语言作业。

    第一次c语言作业 作业1 2.1 你对软件工程专业或者计算机科学与技术专业了解是怎样? 我认为计算机科学与技术是研究信息过程.用以表达此过程的信息结构和规则及其在信息处理系统中实现的学科.这门学科是为 ...

  9. OO第四单元博客作业

    OO第四单元博客作业 BUAA_1706_HugeGun 目录 第四单元作业架构设计 四个单元架构设计及OO方法理解 四个单元测试理解与实践演进 课程收获 一点建议 第四单元作业架构设计 ### 第十 ...

随机推荐

  1. ctf变量覆盖漏洞:

    1.变量覆盖: ①:针对extract函数的变量覆盖漏洞: <?php @error_reporting(E_ALL^E_NOTICE); require('config.php'); if($ ...

  2. http客户端请求及服务端详解

    http客户端请求及服务端详解 引言 HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展. ...

  3. C# HttpClient设置cookies的两种办法 (转发)

    一般有两种办法 第一种handler.UseCookies=true(默认为true),默认的会自己带上cookies,例如 var handler = new HttpClientHandler() ...

  4. Python内置函数(18)——bin

    英文文档: bin(x) Convert an integer number to a binary string. The result is a valid Python expression. ...

  5. Spring Security入门(1-13)Spring Security的投票机制和投票器

    1.三种表决方式,默认是 一票制AffirmativeBased public interface AccessDecisionManager { /** * 通过传递的参数来决定用户是否有访问对应受 ...

  6. HTML mate标签

    META标签分两大部分:HTTP标题信息(http-equiv)和页面描述信息(name). http-equiv http-equiv类似于HTTP的头部协议,它回应给浏览器一些有用的信息,以帮助正 ...

  7. Python入门之ATM+购物车代码版思维导图

    该项目结合了ATM模版和购物车需求,整个思维导图用Python代码实现,使用思维导图可以清晰明了的看清整个框架: 过程中,用到了Python的知识有Python常用模块,Python常用内置包,log ...

  8. Spring Cloud之——Config(配置中心)

    Spring Cloud Config(配置中心) 大家好,有一段时间没有写技术博客了.由于工作上的事情,这方面很难分配时间.近几年随着服务化的兴起,一批服务化的框架应运而生,像dubbo,thrif ...

  9. .NET Core 2.1 Preview 2发布 - April 10, 2018

    我们今天宣布发布 .NET Core 2.1 Preview 2.这也是我们在接下来的两到三个月内接近最终发布的版本,该版本现已准备好进行广泛的测试.我们希望您有任何反馈意见. ASP.NET Cor ...

  10. Java:List集合内的对象进行排序

    List集合中的对象进行排序,除了for外,还有java的Collections对象来对摸个集合进行排序的用法. 比如说我有一个List集合,集合元素为: public class TaskAutoE ...