一,PTA实验作业

题目1.计算分段函数

本题目要求计算下列分段函数f(x)的值:

1.实验代码

	double x,result;

	scanf("%lf",&x);
if(x<0)
{
result=pow(x+1,2)+2*x+1/x;
}
else
{
result=pow(x,0.5);
}
printf("f(%.2f) = %.2f",x,result); return 0;

2.设计思路

  • 第一步:定义两个双精度浮点型变量x,result。
  • 第二步:输入x的值。
  • 第三步:用if语句对输入的x值与0的关系进行判断。
  • 第四步:如果x<0,对result进行赋值:result=pow(x+1,2)+2*x+1/x。
  • 第五步:否则,对result进行赋值: result=pow(x,0.5)。
  • 第六步:按“f(x) = result”的格式输出,其中x与result都保留两位小数。

3.本题调试过程碰到问题及解决办法

  • (1).编写错误:else后加了限定条件。

4.本题PTA提交列表

题目2.输出三角形面积和周长

本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。注意:在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式:

1.实验代码

    double a,b,c,s;
scanf("%lf%lf%lf",&a,&b,&c);
s=(a+b+c)/2;
if((a+b>c)&&(b+c>a)&&(c+a>b)){
printf("area = %.2f; perimeter = %.2f",sqrt(s*(s-a)*(s-b)*(s-c)),a+b+c);
}
else
printf("These sides do not correspond to a valid triangle"); return 0;

2.设计思路

  • 第一步:定义四个双精度浮点型变量a,b,c放三角形边长以及s。
  • 第二步:输入三边长a,b,c的值。
  • 第三步:赋值s=(a+b+c)/2。
  • 第四步:用if语句对输入的三边长的大小关系进行判断是否可以组成三角形,条件为任意两边之和大于第三边:((a+b>c)&&(b+c>a)&&(c+a>b))。
  • 第五步:如果满足条件,输出面积等于sqrt(s(s-a)(s-b)*(s-c)),周长等于a+b+c。
  • 第六步:否则,输出These sides do not correspond to a valid triangle。

3.本题调试过程碰到问题及解决办法

  • (1).段错误:scanf语句没加&号。
  • (2).判断三角形的条件错误:有上网查询最后正确了。

4.本题PTA提交列表

题目2.出租车计价

本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:

起步里程为3公里,起步费10元;

超起步里程后10公里内,每公里2元;

超过10公里以上的部分加收50%的回空补贴费,即每公里3元;

营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。

1.实验代码

	int time,m1,m2;
double mile;
scanf("%lf %d",&mile,&time); if(mile<=3){
m1=10;
}
else if(mile>3&&mile<=10){
m1=10+2*(mile-3);
}
else
m1=24+3*(mile-10); if(time<5){
m2=0;
}
else
m2=2*time/5;
printf("%d",m1+m2);

2.设计思路

  • 第一步:定义三个整型变量time放等待时间,m1放正常费用,m2放停车费用。定义一个双精度浮点型变量mile放行驶里程。
  • 第二步:输入行驶公里mile和等待时间time的值。
  • 第三步:用if语句将行驶里程分为三类。
  • 第四步:如果行驶里程mile小于等于3,赋值正常费用m1=10。
  • 第五步:如果行驶里程mile大于3小于等于10,赋值正常费用m1=10+2*(mile-3)。
  • 第六步:否则,m1=24+3*(mile-10)。
  • 第七步:用if语句将等待时间分为两类。
  • 第八步:如果等待时间time小于5,赋值m2=0。
  • 第九步:否则,赋值m2=2*time/5。
  • 第十步:最后输出m1+m2即为总费用。

3.本题调试过程碰到问题及解决办法

  • (1).结果四舍五入:题目要求结果输出需要四舍五入,上网查询并没有得到解决,但是我将mile定义为双精度浮点型,m1是mile经过运算得到的。最后提交答案正确,可是还是不理解四舍五入应该怎么实现。

4.本题PTA提交列表

题目4.程序设计联考

自从湖南农业大学、吉首大学和怀化学院组织程序设计课程联考以后,举办联考的经验越来丰富。尤其是在使用PTA系统作为考试平台之后,联考工作得到了很多学校的认可和支持。所以,现在参与联考的学校比较多。为了便于区分考生,考生账号的第一位是学校代号。1代表Hunan Agricultural University,2代表Jishou University,3代表Huaihua University,4代表Aerospace University,5代表Ocean University。 请编写程序根据考生的账号区分考生的学校。

1.实验代码

	int account,school;

	scanf("%d",&account);
school=account/100000; switch(school){
case 1:
printf("Hunan Agricultural University");
break;
case 2:
printf("Jishou University");
break;
case 3:
printf("Huaihua University");
break;
case 4:
printf("Aerospace University");
break;
case 5:
printf("Ocean University");
break;
default:printf("Other University");
break;
} return 0;

2.设计思路

  • 第一步:定义两个整型变量account放考生账号,school放考生所在学校。
  • 第二步:输入account的值。
  • 第三步:用switch语句实现多分支判断。
  • 第四步:如果school=1,输出Hunan Agricultural University。
  • 第五步:如果school=2,输出Jishou University。
  • 第六步:如果school=3,输出Huaihua University。
  • 第七步:如果school=4,输出Ocean University。
  • 第八步:否则,输出Other University。

3.本题调试过程碰到问题及解决办法

  • (1).编写错误:第一次用if语句来实现多分支,后来又改写成switch语句。
  • (2).不会编写:在使用switch语句时,不知道要怎样用它实现判断第一个数字。

    解决办法:在课堂中老师讲到了一个同类型的成绩分类的例题,听完后一下子明白了该怎么实现判断条件。自己做不出的原因是对/号和%号的理解不够深刻。

4.本题PTA提交列表

二、截图本周题目集的PTA提交列表及最后排名。

三、本周学习总结

1.你学会了什么?

  • if-else语句: if (x=3) 判断符号为==else (x==3)else后不能加条件
if (x<3)
else if(x>5)
else

最后一个else是与第一个if相匹配,再利用if语句的嵌套时,要及时加入{}。

  • switch语句:switch语句只进入满足条件的分支,比if语句更高效,但是只能判断某一常量。

    case后有:号,每一个case后要加break.
  • scanf语句:自己总是会忘记加&号,导致在DEV C++里运行时总是出现

    而且在PTA上也是段错误,最后认真检查了一遍才查出了错误。
  • %10为取个位,、10为去掉个位。
  • 这次的编程作业有专门设定符合题意的变量名,慢慢向见名知义看齐。

3.你碰到什么困难,打算如何解决?

  • 经过上一周的基础训练,这周接触到了if语句的嵌套、switch语句的灵活运用以及熟练运用%、/号。
  • 在编码的过程中发现自己对于多类型混合运算结果还是很迷糊,尤其是出租车计价那道题,要求四舍五入,还是不清楚要怎样实现四舍五入。
  • 在课堂中的互动过程中,我发现自己对于动手写下代码还有很大的缺陷,比如‘’号写成''''号,;忘记写这类低级错误。这说明仅仅会敲代码不行,能正确无误的写下代码才是真正的熟练。尤其是像switch语句这种较为复杂的代码,更需要自己动手写一写,所以在以后的做作业过程中,我会先自己将代码写下来,再放到DEV C++里运行,最后再放到PTA里提交。
  • 我还发现自己对于安排时间以及对作业的规划上有所欠缺,在面对课堂派预习作业,PTA,博客园,看慕课都未完成的情况下,自己忙得团团转,不仅降低了效率,而且还增加了一些抵触情绪与焦躁感。后来想想还是因为自己没有合理的安排好每天的任务,才导致作业都堆积在一起。因此在以后的每一周中,我会将作业安排细化,要在不紧不慢的节奏中将每份作业做到最好。

C语言第二次博客作业---分支结构的更多相关文章

  1. C语言第二次博客作业——分支结构

    一.PTA实验作业 题目1:计算分段函数 1.实验代码 #include<stdio.h> #include<math.h> int main(void) { double x ...

  2. C语言第二次博客作业—分支结构

    一.PTA实验作业 题目1:计算分段函数 1.实验代码 double x,y; scanf("%lf",&x); if(x>=0){ y=sqrt(x); print ...

  3. C语言第二次博客作业---分支结构 陈张鑫

    一.PTA实验作业 题目1:计算分段函数[2] 本题目要求计算下列分段函数f(x)的值: 1.实验代码 int main(){double x,y; scanf("%lf",&am ...

  4. C语言第二次博客作业

    一.PTA实验作业 题目1:计算分段函数[2] 本题目要求计算下列分段函数f(x)的值: 1.实验代码 int main (void) { double x,y; scanf("%lf&qu ...

  5. Java语言课程设计——博客作业教学数据分析系统(201521123107 张翔)

    #Java语言课程设计--博客作业教学数据分析系统(个人博客) 1.团队课程设计博客链接 [博客作业教学数据分析系统(From:网络五条狗)](http://www.cnblogs.com/fanta ...

  6. OO第二次博客作业——电梯调度

    OO第二次博客作业——电梯调度 前言 最近三周,OO课程进入多线程学习阶段,主要通过三次电梯调度作业来学习.从单部电梯的傻瓜式调度到有性能要求的调度到多部电梯的调度,难度逐渐提升,对同学们的要求逐渐变 ...

  7. C语言博客作业06——结构体&文件

    C语言博客作业06--结构体&文件 1.本章学习总结 1.1思维导图 1.2.本章学习体会 在本周的学习中,我们学习了关于结构体和文件的内容.结构体的本身并不难,但以结构体为基础的链表还是让我 ...

  8. OO第二次博客作业—17373247

    OO第二次博客作业 零.写在前面 OO第二单元宣告结束,在这个单元里自己算是真正对面向对象编程产生了比较深刻的理解,也认识到了一个合理的架构为编程带来的极大的便利. (挂三次评测分数 看出得分接近等差 ...

  9. Java第二次博客作业

    Java第二次博客作业 时间过的很快啊,在不知不觉中这门课程的学习也就快要过去一半了,现在就来总结一下在这个第二个月的学习当中存在的问题以及得到的心得. 1.前言 第四次题目集和第五次题目集给我的感觉 ...

随机推荐

  1. duilib界面库学习(仿PC微信界面,有服务器,有数据库,可以网络通信)

    客户端代码:https://github.com/TTGuoying/duilib_ChatClient 服务器代码:https://github.com/TTGuoying/duilib_ChatS ...

  2. 禁掉coolie,session还能正常使用吗?

    Cookie禁用了,Session还能用吗?   Cookie与 Session,一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案 ...

  3. Luogu P1078 文化之旅

    题目描述 有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一种文化超过一次(即如果他学习了某种文化,则他就不能到达其他有这种文化的国家).不同的国家可能有相同的文化.不同文化 ...

  4. webpack打包速度和性能再次优化

    一. 改单dll为双dll 因为上图原因,使用CommonsChunkPlugin时,导致其打包出来的vendors.js内的模块ID会因为其他文件引用模块数量的变化而变化. 所以现利用DllPlug ...

  5. linux ftp及C/S服务架构

    乱码转换工具使用convmv软件:windows中文字符编码为GB2312 linux中文字符编码为utf-8选项:-f:源文件中中文字符编码-t:转换成字符编码-r:代表递归--notest:不测试 ...

  6. 面试题:HTTP与HTTPS

    记录个面试题 HTTP与HTTPS的不同 1.HTTP的URL为http://开头,HTTPS的URL为https://开头 2.HTTP标准端口80,HTTPS标准端口是443 3.在OSI网络模型 ...

  7. RMAN还原时注意set newname时文件名不要有空格

      今天遇到一个非常奇怪的现象,查看ORACLE数据库的一个文件,明明这个文件是存在的,但是使用ls -lrt 查看都显示这个文件不存在.很是纳闷! 后面发现在终端输入文件名后并使用tab键时,发现文 ...

  8. redis客户端连接服务端the version of redis server is too low to support this function错误

    redis作为一个内存数据库,使用得当可以大大的提升系统运行的效率,据说能读的速度是110000次/s,写的速度是81000次/s,我们的其中一个系统就用到了这个. 由于之前负责这个的同事离职,只好临 ...

  9. IDirectDraw接口

    创建一个主DirectDraw对象,并使用QueryInterface()方法来得到最新的IDirectDraw7接口,或是直接用DirectDrawCreateEx()函数直接创建一个DirectD ...

  10. 利用 DirectShow 开发自己的 Filter

    学习directshow已经有几天了,下面将自己的学习心得写下来,希望对其他的人有帮助. Filter实质是个COM组件,所以学习开发Filter之前你应该对com的知识有点了解.Com组件的实质是一 ...