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

一、PTA实验作业

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

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\n",x,result);

2 设计思路

  • 第一步:定义变量x,result。
  • 第二步:如果x大于等于0,输出result=pow(x,0.5)。
  • 第三步:否则,输出result=pow((x+1),2)+2*x+1/x。
  • 第四步:输出result并保留两位小数。

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

  • 结果输出时格式错误,应该在输出时加入空格。

4.本题PTA提交列表

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

1.实验代码

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

2 设计思路

  • 第一步:定义变量a,b,c,双浮点型变量area,perimeter,s,其中a,b,c分别放边长,area放面积,perimeter放周长,s放(a+b+c)/2的值。
  • 第二步:如果 a+b>c且a+c>b且b+c>a,则s=(a+b+c)/2.0,area=sqrt(s(s-a)(s-b)*(s-c)),perimeter=a+b+c。
  • 第三步:输出面积area,周长perimeter,并且保留两位小数。
  • 第四步:否则,输出These sides do not correspond to a valid triangle。

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

  • (1).面积公式错误,应该化成C语言表达式加上*。
  • (2).答案错误,没有按照格式输入,在输出时空格。

4.本题PTA提交列表

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

1.实验代码

	int minute;
	double distance,fare;
	scanf("%lf%d",&distance,&minute);
	if(distance<=3)
		fare=10+minute/5*2;
	else if(3<distance&&distance<=10)
		fare=10+(distance-3)*2+minute/5*2;
	else 
		fare=24+(distance-10)*3+minute/5*2;
	printf("%.0f",fare);

2 设计思路

  • 第一步:定义变量,minute放等待时间,distance放行驶距离,fare放费用。
  • 第二步:如果distance<=3,则fare=10+minute/5*2。
  • 第三步:如果3<distance并且distance<=10,则fare=10+(distance-3)2+minute/52。
  • 第四步:否则,fare=24+(distance-10)3+minute/52。
  • 第五步:输出结果并保留整数且要四舍五入。

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

  • 没有理解题意,导致老是出错,之后和同学讨论真正理解题意。
  • 结果不知道怎么四舍五入,应该输出时加上%.0f。

4.本题PTA提交列表

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

1.实验代码

	int account,number;
	scanf("%d",&account);
	number=account/100000;
	switch(number){
		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放考生账号,number放考生账号的第一位数字。
  • 第二步:number=account/100000。
  • 第三步:如果值为1,则输出Hunan Agricultural University。
  • 第四步:如果值为2,则输出Jishou University。
  • 第五步:如果值为3,则输出Huaihua University。
  • 第六步:如果值为4,则输出Aerospace University。
  • 第七步:如果值为5,则输出Ocean University。
  • 第八步:如果值为其他,则输出Other University。

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

  • 输入六位数不知道怎么去首位,应该用六位数除以十万。
  • 不太熟悉switch语法,最后和舍友们交流才学会。

4.本题PTA提交列表

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

三、本周学习总结

1.你学会了什么?

  • (1).学会了一点if else if级联的写法。
  • (2).也学会了使用switch语法。

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

  • 不太熟练PTA上面的题目,很多时候看错题意或者没注意输入输出格式。

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

  • 和同学舍友之间讨论,也在百度上搜索例子。
posted @ 2017-10-19 23:44  做人要有疯度  阅读(305)  评论(0编辑  收藏  举报