(一)改错题

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

错误信息(1):

错误原因: area = sqrt( s * ( s - a ) * ( s - b ) * ( s - c )语句后面缺少一个“)”

改正方法: 把 area = sqrt( s * ( s - a ) * ( s - b ) * ( s - c ); 改为 area = sqrt( s * ( s - a ) * ( s - b ) * ( s - c ));

错误信息(2):

错误原因:if 语句后面没有加大括号

改正方法: 在 if 语句后面加上大括号,使 if else 之间的所有语句都包含在大括号内

错误信息(3):

错误原因:if( a + b > c || b + c > a || a + c > b) 语句中三个关系式应该用 且 链接

改正方法:把 if( a + b > c || b + c > a || a + c > b) 改为 if( a + b > c && b + c > a && a + c > b)

正确的源代码

正确运行结果

(二)学习总结

1.在编程解决问题的过程中,我们会用到多个if语句,if...else if... 语句以及switch语句,查阅资料,总结一下这三种情况的区别何在,并分别举例加以说明。

格式与例子

多个if语句的一般格式为:

举例PTA选择结构(2)中的7-4题用多个if语句较好:

if...else if...语句的一般格式:

举例PTA选择结构(2)中的7-6题用if... else if...语句较好:

switch语句的一般形式为:

举例PTA选择结构(2)中的7-3题用swith case语句较好:



(1).多个if语句,if...else if... 语句的区别:if... else if...语句是一对判断语句的组合;多个顺序if语句是平行的运行判断的语句。

具体分析:

if...else if...是当判断到if语句中的条件成立时,则后面的else if条件语句就不再进行运行与判断了,这样就缩短了程序运行的时间,提高了运算效率; 而多个if语句是将所有if条件语句都要进行判断,即使前面有满足条件的if语句但后面未经过的if条件语句仍然要进行判断,所以多个if条件语句之间是并列关系,所以这样就增加了程序运行的时间,降低了运算效率。

多个if语句,if...else if... 语句资料链接

(2)if... else if...语句与switch语句区别: 两者本质的区别是 if...else if...语句更加适合进行对于区间范围的判断;而switch语句更加适合进行对于离散值的判断。

具体分析:所有的switch语句都可以用if...else if...语句来替换因为if...else if...语句只需对每个离散值分别做判断即可;但并不是所有的if...else if...语句都可以用switch语句来替换因为区间范围内值的个数是无限的,并且switch所接受的值只能是整型或枚举型,所以不能用case来一一列举。有时用switch看起来比较好理解。有时用if...else if...比较好,一般情况下变量用switch比较好,当变量不确定时用if...else if...就比较好,并且在多路分支时用switch语句比用if...else if

... 语句效率要高。

if... else if...语句与switch语句资料链接

(3).多个if语句与switch语句的区别:if和switch都是条件判断语句,在效果上是没有什么差别的,但我们可以从效率上比较

具体分析:例子: if(A>B) {A=B;} else {B=A; } 如果将这个例子放在switch 语句中,实现起来会比较麻烦一些,因为在switch语句中case要求的是常量,一般是不能进行逻辑判断的;而在if语句中常常用于进行逻辑判断,所以这也是if语句优于switch语句的地方。 但是如果判断的都是几个常量的数据,采用switch语句比较方便,清晰,明了。

多个if语句是将所有if条件语句都要进行判断,即使前面有满足条件的if语句但后面未经过的if条件语句仍然要进行判断,所以多个if条件语句之间是并列关系,所以这样就增加了程序运行的时间,降低了运算效率。而switch 语句中运行开始是从switch 后面的条件开始的,例如在 :“计算天数(1

本题要求编写程序计算某年某月某日是该年中的第几天”中用switch语句就比多个if语句运行速度更快些。

多个if语句与switch语句网址链接

(4).其它需要进行总结的内容总结:

1.一般情况下switch语句需要跳出时要有break;来结束,因为switch语句具有穿透性。

2.注意逻辑运算符的优先级,顺序方向。

3.特别注意switch语句case与其后面常量需要空开一个

(三)实验总结

(一)题目:

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

大于等于90分为A;

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

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

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

小于60为E。

(1)流程图:

(2)源代码

(3)实验分析:

问题1.对于百分制的数字怎么划分出十个等级

原因:不会使用除法取整来划出十个等级

解决方法:老师给出用除10的方法来划分,自己多次修改得出正确答案

(4)本题PTA提交列表:

二. 题目:

5.三角形判断

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

(1)流程图:

(2)源代码:

(3)实验分析:

问题1.S=(double)(a+b+c)/2语句中必须用double

原因:因为如果a+b+c为奇数则S为小数,所以必须用double类型

解决方法:多次实验发现,如果没有double则只有a+b+c为偶数时成立,加上double时则答案正确

问题2.一开始看着题目都懂是要干什么,但不会写程序

原因:不会抽象思维,只要输入六个数字,使它们俩俩配对,成为三个点的坐标即可运算

解决方法:通过问同学得到解题思路,自己细心编写得出正确程序

(4)本题PTA提交列表:



三.题目

7.简单的计算器

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

输入格式:

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

输出格式:

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

(1)流程图:

(2)源代码

(3)实验分析:

问题1.例如当运行除法语句时,如图:

除数为零时会出现这种情况

原因:在 printf("除数不能为零\n");语句后面应该跟一条强制退出的语句exit(0),但须注意加exit(0)语句的同时要在代码开头加上#include

解决办法:老师上课着重强调,写代码时细心即可

(4)本题PTA提交列表:

四.题目:

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

(1)流程图:

(2)源代码:

(3)实验分析:

问题1.在编写程序时输出结果总是有点问题

原因:没弄懂方程无解,也就是解为虚根时的问题

解决办法:问同学,实验课时老师给讲解,上网查,最后终于答案正确了!

(4)本题PTA提交列表:

(四)博客互评

(1)李仁正的博客:

实验总结第一题的框图我认为在n<60z之后就不必要进行判断了,直接输出E就可以了,这样运行会更快些。

博客链接:http://www.cnblogs.com/lrxlrz/p/7763680.html

范马桶的博客:

学习总结中,貌似缺少对其它知识的总结,但对要求总结的三个语句总结的特别好,是我学习的榜样!

博客链接:http://www.cnblogs.com/he111923/p/7772093.html

郭zx的博客:

对学习总结描述比较多,写的很详细,而且举例较多,我要多多学习

博客地址:http://www.cnblogs.com/1234569ss/p/7754274.html

c语言程序设计第四次作业——顺序结构的更多相关文章

  1. C语言程序设计第四次作业——选择结构(2)

    Deadline: 2017-11-5 22:00 一.学习要点 掌握switch语句 掌握字符常量.字符串常量和字符变量 掌握字符型数据的输入输出 二.实验内容 完成PTA中选择结构(2)的所有题目 ...

  2. C语言程序设计第四次作业--选择结构(2)

    (一)改错题 输出三角形的面积和周长,输入三角形的三条边a.b.c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数):否则,输出"These sides do ...

  3. C语言程序设计第四次作业-选择结构

    (一)改错题 输出三角形的面积和周长,输入三角形的三条边a.b.c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数):否则,输出"These sides do ...

  4. C语言程序设计第四次作业——选择结构(二)

    (一)改错题 错误信息: 错误原因:第13行sqrt数学函数缺少")",导致编译器无法将括号正确配对 改正方法:补齐缺少的")" 错误信息: 错误原因:if语句 ...

  5. C语言程序设计第六次作业——循环结构(2)

    C语言程序设计第六次作业--循环结构(2) 之前的博客园图片没处理好,对大家说一声抱歉.希望大家能够多多指出我的错误,我来认真修改 ^ - ^ !. (1)改错题 序列求和:输入一个正实数eps,计算 ...

  6. C语言程序设计第三次作业——选择结构(一)

    (一)改错题 错误信息: 错误原因:y=1/x后没加分号 改正方法:在其后加上分号 错误信息: 错误原因:if语句后接了:,使else语句找不到对应的if 改正方法:删掉if后的分号 错误信息: 错误 ...

  7. C语言程序设计第三次作业 —— 选择结构(1)

    (一)改错题 计算f(x)的值:输入实数x,计算并输出下列分段函数f(x)的值,输出时保留1位小数. (错误一) 错误原因及改正:第九行语句结尾缺少半角分号,添加分号即可改正 (错误二) 错误原因及改 ...

  8. C语言程序设计第四次作业

    态度决定一切,我依然要说这句话,每次同学们提交的作业,我都会认真评阅,相比实验课而言,可以有更充足的时间来发现问题,很多同学的代码依然会存在一些语法错误或者考虑不周全的现象,我提出了,那么,你认真看了 ...

  9. C语言程序设计第五次作业——循环结构

    (一)改错题 1.题目:输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增加2℉.计算公式如下: c = 5 ...

随机推荐

  1. 我的PCB电路设计(一)

    我的制板规则 过孔大小:14/24mil-(12/22-28/50)  一般过孔没必要太大.如果电流较大可以适当增大过孔,或者多加几个过孔 线宽大小:小信号线8mil,大电流线不等按1A电流30mil ...

  2. 第一章 IDEA的使用

    第一章   IDEA的使用 1.为什么要使用idea 最智能的IDE IDEA相对于eclipse来说最大的优点就是它比eclipse聪明.聪明到什么程度呢?我们先来看几个简单的例子. A.智能提示重 ...

  3. 2.sublime设置本地远程代码同步

    1.打开编辑器输入框(Ctrl+Shift+P),并执行 2.回车后输入sftp 3.回车个后,右键项目 4.修改配置信息,保存

  4. HTTP协议扫盲(四)HTTP协议进阶 - MIME类型

    一.概念和原理 1.什么是MIME类型? MIME类型,即多用途互联网邮件扩展,它是一个互联网标准,在1992年最早应用于电子邮件系统,但后来也应用到浏览器. 服务器会将它们发送的多媒体数据的类型告诉 ...

  5. OAuth2.0学习(1-7)授权方式4-客户端模式(Client Credentials Grant)

    授权方式4-客户端模式(Client Credentials Grant) 客户端模式(Client Credentials Grant)指客户端以自己的名义,而不是以用户的名义,向"服务提 ...

  6. leetcode算法:Island Perimeter

    You are given a map in form of a two-dimensional integer grid where 1 represents land and 0 represen ...

  7. Django快速入门

    Django 是用 Python 写的一个自由和开放源码 web 应用程序框架.web框架是一套组件,能帮助你更快.更容易地开发web站点.当你开始构建一个web站点时,你总需要一些相似的组件:处理用 ...

  8. POJ-1287 Networking---裸的不能再裸的MST

    题目链接: https://vjudge.net/problem/POJ-1287 题目大意: 模板 #include<iostream> #include<cstdio> # ...

  9. iconfont字体图标和各种CSS小图标

    前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! iconfont字体图标 我们的需求中,很多时候会看到一些小的图形,或者叫图标,比如天猫网站中:     ...

  10. IT智力面试题

    ◆ 有一个长方形蛋糕,切掉了长方形的一块(大小和位置随意),你怎样才能直直的一刀下去,将剩下的蛋糕切成大小相等的两块? 答案:将完整的蛋糕的中心与被切掉的那块蛋糕的中心连成一条线.这个方法也适用于立方 ...