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

一、PTA实验作业

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

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

(1).实验代码

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

(2)设计思路

  • 1.定义两个浮点变量x,y
  • 2.输入x的值
  • 3.如果x>=0,执行y=sqrt(x)
  • 4.否则执行y=pow(x+1,2)+x*2+1/x
  • 5.最后输出y

(3)调试问题及解决方法

开头没有运用数学公式,导致结果一直错误。
解决方法:在课本中寻找问题,最后给予添加。

(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;
	scanf("%d %d %d",&a,&b,&c);
	if(a+b>c&&b+c>a&&a+c>b){
		s=1.0*(a+b+c)/2;
		area=sqrt(s*(s-a)*(s-b)*(s-c));
		perimeter=a+b+c;
		printf("area = %.2f; perimeter = %.2f",area,perimeter);

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

(2)设计思路

  • 1.先判断输入的三条边中任意的两条边是否大于第三条
  • 2.如果是就进行有关的面积,周长运算,并输出周长,面积的值
  • 3.如果不是就直接输出These sides do not correspond to a valid triangle

(3)调试问题及解决方法

问题:当时在s=1.0*(a+b+c)/2;这一条上不太清楚整形和浮点的问题,没有添加1.0,导致错误;
解决方法:当时没有意识到错误,最后询问同学。

(4)本题PTA提交列表

3.出租车计价

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

起步里程为3公里,起步费10元;
超起步里程后10公里内,每公里2元;
超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。

(1).实验代码

int m,x;
	double k,y;
	scanf("%lf %d",&k,&m);
	x=m/5*2;
	if(k<=3)
	{
		y=10+x;
		printf("%.0lf",y);
	}
	else if(k>3&&k<=10)
	{
		y=10+2*(k-3)+x;
		printf("%.0lf",y);
	}
	else{
		y=24+(k-10)*3+x;
		printf("%.0lf",y);

(2)设计思路

  • 1.依照题意在k<=3时执行y=10+x;并输出y
  • 2.在3<k<=10时执行y=10+2*(k-3)+x;;并输出y
  • 3.在k>10时执行y=24+(k-10)*3+x;并输出y

(3)调试问题及解决方法

问题:开头的判断全用if,结果不正确
解决方法:进行了多种尝试,最后发现问题。

(4)本题PTA提交列表

4.程序设计联考

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

(1).实验代码

int account,x;
	scanf("%d",&account);
	x=account/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");

(2)设计思路

1.先用数学运算得出输入代号的首字母
2.运用判断若x1,则输出Hunan Agricultural University;若x2,则输出Jishou University;若b3,则输出Huaihua University;若x4,则输出Aerospace University;若x==5,则输出Ocean University;若x都不等于以上的数,则输出Other University

(3)调试问题及解决方法

本题运用的思路较为直接没有碰到什么问题

(4)本题PTA提交列表

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

三、本周学习总结

1.你学会了什么?

  • 1.学会了switch语句的用法
  • 2.if-else语句的嵌套,if语句的并列包含关系
  • 3.字符型变量的定义和运用

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

  • 1.if-else与switch语句的灵活运用
  • 2.不同的量的转化还有点不清晰

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

  • .问题:不能掌握编程的技巧,解决问题速度较慢,容易错误
  • 解决方法:多去练习,总结,让自己更加熟练
posted @ 2017-10-24 22:45  圣多美  阅读(348)  评论(6编辑  收藏  举报