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

一、PTA实验作业

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

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

1.实验代码

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

2.设计思路

  • 第一步:定义两个双精度浮点型变量x,result。
  • 第二步:输入x。
  • 第三步:判断当x>0时,则result=pow(x,0.5)。
  • 第四步:否则 result=pow(x+1,2)+2*x+1/x。
  • 第五步:输出x与result并且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;
	scanf("%d %d %d",&a,&b,&c);
	if(a+b>c&&b+c>a&&a+c>b){
		double area,s,l;
		s=((double)a+b+c)/2.0.;
		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.设计思路

  • 第一步:定义三个整形变量a,b,b,分别存放三角形的三个边。
  • 第二步:输入a,b,c。
  • 第三步;判断三角形任意两边之和是否大于第三边即a+b>c&&b+c>a&&a+c>b。
  • 第四步:若三角形任意两边之和大于第三边成立,则定义三个双精度浮点型变量perimeter,area,s。然后计算s即s=((double)a+b+c)/2.0,再计算area即area=sqrt((s(s-a)(s-b)*(s-c))),在计算perimeter即perimeter=a+b+c;然后输出area与perimeter
  • 第五步:否则输出These sides do not correspond to a valid triangle。

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

  • (1)s与预期答案不符,使得area计算错误。解决方法:仔细查看代码,发现s输出的时候被忽略小数,然后记起整书与整数相除为整数,然后将2改成2.0.
  • (2)不知道如何表示输入的边能构成三角形,解决方法:复习高中数学,询问同学。

4.本题PTA提交列表

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

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

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

1.实验代码

	double distance,price;
	int time;
	scanf("%lf %d",&distance,&time);
	if(distance<=3){price=10+time/5*2;
	printf("%.0f",price);
	}
	else if(3<distance&&distance<=10){price=10+(distance-3)*2.0+time/5*2;
	printf("%.0f",price);
	}
	else if(distance>10){price=24+(distance-10)*3+time/5*2;
	printf("%.0f",price);
	}

2.设计思路

  • 第一步:定义两个双精度浮点型变量distance,price,定义一个整形变量time。
  • 第二步:输入distance,time。
  • 第三步:如果distance<=3,则price=10+time/5*2,输出price并四舍五入
  • 第四步:否则如果distance>3并且distance<10,则price=10+(distance-3)2.0+time/52,输出price并四舍五入。
  • 第五步:否则如果distance>10,则price=24+(distance-10)3+time/52,输出price并四舍五入。

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

  • (1)题目理解错误,不超过五分钟不收费应该是逢5倍数的时间收一次费,我理解错误导致多次失误,解决方法:询问舍友。
  • (2)不理解四舍五入应该怎么表示,解决方法:突发奇想想到了用%.0f表达。

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;
	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;
	}

2.设计思路

  • 第一步:定义一个整形变量account。
  • 第二步:输入account。
  • 第三步:通过switch来实现分支,即switch(account/100000),当account/100000==1时,则输出Hunan Agricultural University
  • 第三步:当account/100000==2时,输出Jishou University。
  • 第四步:当account/100000==3时,输出Huaihua University。
  • 第五步:当account/100000==4时,输出Aerospace University。
  • 第六步:当account/100000==5时,输出Ocean University。
  • 第七步:否则,输出Other University。

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

  • (1)题目一开始错了!!!!!!然后我花了好久都没找到答案,问了老师也不知道,解决方法:后来一个舍友灵光一现发现了题目错了。

4.本题PTA提交列表

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

三、本周学习总结

1.你学会了什么?

我学会了循环结构的语法,就像for(i=1;i<=N;i++){循环体语句}这样的句子,还学会了switch语句,并且还学会了一种新变量:字符型变量。了解了字符型变量的定义,以及输入输出的格式,并且当前学习的字符型变量只能存放一个字符。并且还学会了if else if的级联语法,用于多分支结构。

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

基本都已经掌握了,就是还没有做关于字符型变量的作业,所以可能掌握的有点不够透彻,

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

听完上次林丽老师邀请的网协,人工智能协会,ACM竞赛协会的演讲,发觉自己离大佬还很远很远,所以我决心要多打代码,学好高数。

posted @ 2017-10-19 20:41  你们走啊  阅读(396)  评论(6编辑  收藏  举报