C语言第二次博客作业---分支结构

一、PTA实验作业

题目1:7-1 计算分段函数[2]

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

1.代码

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

2.设计思路

第一步:定义双精度浮点变量x,fx
第二步:利用if else分支结构分别计算不同情况下fx的值
第三步:若x>=0则输出fx=pow(x,0.5)
第四步:否则输出fx=(x+1)(x+1)+2x+1/x;
第五步:按题目要求输出结果

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

(1)误用中文符号,经devc检查后改正错误
(2)未使用数学函数#include<math.h>导致输出错误,检查后发现错误
(3)使用pow函数时应该添加#include<math.h>

4.本题PTA提交列表

题目2:7-4 输出三角形面积和周长

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

1.代码

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

2.设计思路

第一步:定义整型变量a,b,c以及双精度浮点变量area,length
第二步:利用if-else分支结构,若输入的两边之和小于第三边,则输出错误提示
第三步:否则根据题目公式计算三角形周长以及面积
第四步:按照题目格式输出答案

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

(1)变量定义错误,没有根据要求定义双精度浮点型变量,导致输出错误,认真阅读课本得到解决
(2)变量相乘没有用*导致错误,经检查发现错误

4.本题PTA提交列表

题目3:7-6 出租车计价

题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
起步里程为3公里,起步费10元;
超起步里程后10公里内,每公里2元;
超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。

1.代码

int minute,money,k;
  double l;
  scanf("%lf%d",&l,&minute);
  if(minute>=5)
  {
  k=minute/5*2;
   } 
   else
   {
   	k=0;
   }
  if(l<=3)
  {
  	printf("%d",10+k);
  }
  else if(l<=10)
  {
  	money=((10+(l-3)*2+k)+0.5)*10/10;
  	printf("%d",money);
  }
  else if(l>10)
  {
  	money=((24+(l-10)*3+k)+0.5)*10/10;
  	printf("%d",money);

2.设计思路

第一步:根据题目要求,定义变量
第二步:利用if-else分支结构,分别计算题目中当起步里程为3公里,超起步里程后10公里,以及超过10公里的时所花费的费用
第三步:用另一个分支计算当停车时长大于分钟时的额外费用
第四步:计算总费用,按要求输出答案

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

(1)公式错误,利用devc检查公式那一段,观测变量发现了。公式的错误
(2)语法错误,将%lf输入成%d,多次检查后改正
(3)设计程序时没有思路,在同学引导下逐渐得出结果

4.本题PTA提交列表

题目4:7-8 程序设计联考

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

1.代码


  int account,number;
  scanf("%d",&account);
  number=account/100000;
  if(number==1)
  {
    printf("Hunan Agricultural University");
  }
   else if(number==2)
  {
    printf("Jishou University");
  }
   else if(number==3)
  {
    printf("Huaihua University");
  }
   else if(number==4)
  {
    printf("Aerospace University");
  }
   else if(number==5)
  {
    printf("Ocean University");
  }
   else
  {
    printf("Other University");
  }

2.设计思路

第一步:根据题目要求定义变量account和number
第二步:利用公式求出第一位数
第三步:利用分支结构按照题目要求输出答案

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

(1)题目不清楚,没有说明"Other University“需要空格导致多次答案错误,尝试后得到正确结果

4.本题PTA提交列表

二、截图本周题目集的PTA排名。

PTA排名

1.你学会了什么?

(1)分支结构的应用
(2)利用c语言解决实际问题
(3)学会了如何使用devc的调试功能
(4)变量定义应该用单词而不是单个字母

2.你还不会什么

(1)switch语法运用的不够熟练
(2)无法快速找出程序的错误

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

(1)编程时容易出现语法错误,需要检查很久才能发现,应该多用编程软件,提升查错速度
(2)还需要多做题目提升自己的能力与速度
(3)对switch语法掌握不熟练,还需多加训练,从课本,慕课,pta上进行学习

posted on 2017-10-22 14:07  FaceTheWind  阅读(546)  评论(7编辑  收藏  举报

导航