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

一、PTA实验作业.

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

本题目要求计算下列分段函数f(x)的值:
注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。

1.代码

  double x,result;

  scanf("%lf",&x);

  if(x>=0) result=sqrt(x);

  else result=pow((x+1),2)+2*x+1/x;

  printf("f(%.2f) = %.2f",x,result);

  return 0;

2.设计思路

-(1)调用函数。定义两个双精度变量x和result。
-(2)输入x。
-(3)如果x>=0,result=sqrt(x)。否则,result=pow((x+1),2)+2*x+1/x。
-(4)输出f(x)=result的值。x和result保留两位小数。

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

无问题。

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 area,perimeter,s;

  scanf("%d%d%d",&a,&b,&c);

  if(a+b>c&&a+c>b&&b+c>a) {

      s=(a+b+c)*1.0/2;

      area=sqrt(s*(s-a)*(s-b)*(s-c));

      perimeter=1.0*(a+b+c);

      printf("area = %.2f; perimeter = %.2f",area,perimeter);

  }

  else printf("These sides do not correspond to a valid triangle");

  return 0;

2.设计思路

-(1)定义3个a,b,c代表边,定义3个整型变量area,perimeters丶s代表面积丶周长和s.
-(2)输入边长a,b,c.
-(3)如果这三边能组成三角形,计算s=(a+b+c)1.0/2; 面积area=sqrt(s(s-a)(s-b)(s-c)); 周长perimeter=1.0*(a+b+c);. 然后输出面积和周长,保留两位小数.
-(4)如果这三边不能组成三角形,输出"These sides do not correspond to a valid triangle"

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

一开始将s定义为整型变量导致答案错误,后来想到s可能为小数于是改成定义为浮点型变量.

4.本题PTA实验结果

题目3.出租车计价

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

1.代码

#include<stdio.h>
int main()
{
  int time;
  double mileage,fee;
  scanf("%lf %d",&mileage,&time);
  if(mileage<=3) fee=10;
  else if(mileage>3&&mileage<=10) fee=10+(mileage-3)*2;
  else fee=24+(mileage-10)*3;
  fee=fee+(time/5)*2;
  printf("%.0f",fee);
  return 0;
}

2.设计思路

-(1)定义整型变量time表示等待时间.定义浮点型变量mileage和fee表示路程和费用.
-(2)输入路程和时间.
-(3)先判断路程:如果路程mileage<=3(km),费用fee=10; 如果路程>3且<=10,费用fee=10+(mileage-3)2; 如果路程>10,费用fee=24+(mileage-10)3.
-(4)在路程产生的费用上加上停车产生的费用fee=fee+(time/5)*2.
-(5)输出费用fee.

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

无问题.

4.本题PTA实验结果

题目4.程序设计联考

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

1.代码

#include<stdio.h>
int main()
{
  int account;
  scanf("%d",&account);
  switch(account/100000){
    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.设计思路

-(1)定义整型变量account表示学生账号.
-(2)输入学生账号.
-(3)用switch语法判断account/1000000的值,即判断学生账号的首位.值为1,输出"Hunan Agricultural University"(并用break结束语句);值为2,输出"Jishou University";值为3,输出"Huaihua University";值为4,输出"Aerospace University";值为5,输出"Ocean University";值为其他数,输出"Other University".

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

无问题.

4.本题PTA实验结果

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

三、本周学习总结

1.你学会了什么?

-学会了条件语句的用法,知道了switch语法和if-else语法的异同点及各自的优点;知道了什么是字符型还有字符型变量的输入输出,知道了判断字符要加' ';

2.本周的内容,你还不会什么?

-基本理解.

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

-不从题目上复制输出格式不时会出现答案错误.写代码还不够快,需要多练习.

原文地址:https://www.cnblogs.com/wu98/p/7693492.html