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

一、PTA实验作业。

题目1. 计算分段函数[2]

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

注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。

1.实验代码

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

2 设计思路

主要描述题目算法。可以用文字描述:

  • 第一步:定义双精度浮点变量x存放自变量,y存放因变量。
  • 第二步:输入x的值
  • 第三步:如果x≥0,y=sqrt(x),输出f(x)=y。
  • 第四步:否则y=pow(x+1,2)+2*x+1/x,输出f(x)=y。

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

  • (1)计算函数时要在开头加上#include <math.h>。
  • (2)x/y要用double定义,不能用int
  • (3)return 0后也需要添加分号,为此多次提交后显示编程错误。

4.本题PTA实验结果

贴图展示:

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

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

1.实验代码

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

2 设计思路

主要描述题目算法。可以用文字描述:

  • 第一步:定义整形变量a、b、c分别存放三条边长双浮点变量area存放面积,perimeter存放周长,s存放(a+b+c)/2的值,t存放面积的平方。
  • 第二步:如果不能构成三角形,输出These sides do not correspond to a valid triangle。
  • 第三步:否则area=sqrt(t);perimeter=a+b+c; 输出面积 周长。

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

  • (1)输入时abc要乘1.0使其变成浮点数
  • (2)第一个printf是需要换行的,否则会因为在同一行无法通过。

4.本题PTA实验结果

贴图展示:

题目3:出租车计价

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

1.实验代码

int a;      
double b,c,e,d;                                                //b是行驶时间,a是等待分钟。
scanf("%lf %d",&b,&a);
if(b<=3)
{c=10;
}
else if(b>3&&b<=10)
{c=10+(b-3)*2; 
}
else
{c=10+14+(b-10)*3;  
}
if(a<5)
{d=0;
}
else if (a>=5)  
{d=(a/5)*2;
}

e=c+d;
printf("%.0f",e);
return 0;

2 设计思路

主要描述题目算法。可以用文字描述:

  • 第一步:定义b存放行驶时间,a存放等待时间,c存放行驶费用,d存放等待费用,e存放总费用。
  • 第二步:如果b≤3,初始费用c=10元,3<b≤10,c=10+(b-3)2,否则c=10+14+(b-10)3。
  • 第三步:如果a<5,不收等待费用,如果a≥5,d=(a/5)*2。
  • 第四步:e=c+d,并输出总费用e。

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

  • (1)将行驶费用和等待费用分开算会方便很多。
  • (2)输入时%后边需要用.0f。
  • (3)算法要先写好在写程序。

4.本题PTA实验结果

贴图展示:

题目4.程序设计联考

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

1.实验代码

int b,x;               //account代表学号,X代表第一位
 scanf("%d",&b);
 x=b/100000;
 if (x==1){
 	printf("Hunan Agricultural University");
 }
 else if (x==2)
 {printf("Jishou University");
 }
 else if (x==3)
 {printf("Huaihua University");
 }
 else if (x==4)
 {printf("Aerospace University");
 }
 else if (x==5)
 {printf("Ocean University");
 }
 else
 {printf("Other University");
 }
return 0; 

2 设计思路

主要描述题目算法。可以用文字描述:

  • 第一步:定义b为学号,x为首位字母。
  • 第二步:利用x=b/100000求出x。
  • 第三步:如果x为1,输出Hunan Agricultural University,x为2,输出Jishou University,以此类推。
  • 第四步:输出结果。

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

  • (1)本题比较容易没有什么问题,但是要注意if后面要有两个=。

4.本题PTA实验结果。

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

1.提交列表:





2.最后排名:

三、本周学习总结(1分)

1.你学会了什么?
我学会了分支结构的简单用法。
2.本周的内容,你还不会什么?
对于多分支结构还有问题
3.你碰到什么困难,打算如何解决?
(1)多次出现编译错误,解决方法为在Dev C++中运行,看看提示你除了什么错误,实在不行发群上问老师助教同学。
(2)格式错误(答案错误)是最常见的问题,解决方式为将输出样例复制粘贴下来,还是错误就向老师助教寻求帮助。
(3)部分正确是最难受的,说明你成功完成了大部分,但是还有部分没完成,这时候应该静下心来好好想想是什么地方出了问题,可以重新敲一次代码,和原来进行核对。

posted @ 2017-10-25 23:12  林怡鹏  阅读(363)  评论(6编辑  收藏  举报