c语言第四次作业

(一)改错题

输出三角形的面积和周长,输入三角形的三条边a、b、c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数);否则,输出“These sides do not correspond to a valid triangle”。

输入输出样例1:
  Enter 3 sides of the triangle: 5 5 3
  area = 7.15; perimeter = 13.00
输入输出样例2:
  Enter 3 sides of the triangle: 1 4 1
  These sides do not correspond to a valid triangle

源程序(有错误的程序)
#include <stdio.h>
#include <math.h>
int main(void)
{
double a,b,c;
double area,perimeter,s;

    printf("Enter 3 sides of the triangle: ");
    scanf( "%lf%lf%lf",&a,&b,&c );

    if( a + b > c || b + c > a || a + c > b) 
        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");

    return 0;        
}

对源程序进行编译,采用每次修改第一个错误并重新编译的方法,记录每个错误的错误信息、分析错误原因并给出正确的语句。
改错题采用如下格式
  错误信息1:

  错误原因: if else语句要用到{}来进行引用,if和else后的条件句都没有{}。
  改正方法:将if和else后的条件句用{}括起来。
错误信息2:

  错误原因:缺少),sqrt函数表达式不完整。
  改正方法:在函数表达式最后加上)。

(二)学习总结

1.在编程解决问题的过程中,我们会用到多个if语句,if...else if... 语句以及switch语句,查阅资料,总结一下这三种情况的区别何在,并分别举例加以说明。禁止大段复制,要自己对资料进行归纳总结,并给出你参考的资料链接。

总结:在多个判断条件的情况下,使用if...else if语句相对于使用多个if语句而言,可以减少程序的判断次数,提高效率;在只需要判断一个条件的时候,使用if语句更方便有效,当多个条件并列时,使用此语句更方便;if...else if在任何一个环节满足条件的时候就将会终止判断,条件适中时适合使用 此语句。
资料链接:http://www.cnblogs.com/wankun/p/4989831.html
举例:1.

2.

3.

2.对其他你认为需要进行总结的内容进行总结。

(1)注意区分if,if....else,switch等语句的运用;
(2)切记&的应用;
(3)case后要加break。
(三)实验总结

本次实验总结,学号末位数是单数的同学完成选择结构(2)中的1、5、7、9题,学号末位数是双数的同学完成选择结构(2)中的2、4、6、8题。
格式如下:

1 比较大小

(1)本题要求将输入的任意3个整数从小到大输出。本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。
(2)流程图
插入raptor流程图

(3)源代码
插入程序源代码(注意MarkDown格式以及程序格式的规范化,如缩格)

include<stdio.h>

int main()
{
int a,b,c,t;
scanf("%d %d %d",&a,&b,&c);
if(a>b)
{
t=a;
a=b;
b=t;
}
if(a>c)
{
t=a;
a=c;
c=t;
}
if(b>c)
{
t=b;
b=c;
c=t;
}

}
(4)实验分析
记录实验中遇到的问题及解决方法,格式如下:
问题1:

原因:输出位置与输入位置不对应。’
解决办法:将输出语句放在条件外。
问题2:答案错误。
原因:输出的结果跟题目的要求不符。
解决办法:根据题目要求进行调整。
(5)本题PTA提交列表

2 高速公路超速处罚
(1)题目
按照规定,在高速公路上行使的机动车,超出本车道限速的10%则处200元罚款;若超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。
(2)流程图
插入raptor流程图

(3)源代码
插入程序源代码(注意MarkDown格式以及程序格式的规范化,如缩格)

include<stdio.h>

int main()
{
int v,x,y;
double z;
scanf("%d %d",&v,&x);
if(v10 < x11 && v > 0)
{
printf("OK\n");
}
else
{
if(v10 >= x11 && v10 < x15)
{
y = (v-x);
z = y100.0/x;
printf("Exceed %.0f%%. Ticket 200\n ",z);
}
else
{
if(v
10 >= x15)
{
y = (v-x);
z = y
100.0/x;
printf("Exceed %.f%%. License Revoked\n",z);
}
}
}
return 0;
}
(4)实验分析
记录实验中遇到的问题及解决方法,格式如下:
问题:在运行时突然停止。
原因:没有取地址符。
解决办法:在输入变量时的变量前加&。

(5)本题PTA提交列表

3 计算油费
(1)题目
现在90号汽油6.95元/升、93号汽油7.44元/升、97号汽油7.93元/升。为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”两个服务等级,分别可得到5%和3%的折扣。
本题要求编写程序,根据输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助),计算并输出应付款。
(2)流程图
插入raptor流程图

(3)源代码
插入程序源代码(注意MarkDown格式以及程序格式的规范化,如缩格)

include <stdio.h>

include <stdlib.h>

int main()
{
int a,b;
char c;
double q;

scanf("%d %d %c",&a,&b,&c);
switch(b)
{
	case 90:
		if(c == 'm')
		{
			q = 6.95*a*0.95;
		}
		else
		{
			if(c == 'e')
			{
				q = 6.95*a*0.97;
			}
		}
		break;
	case 93:
		if(c == 'm')
		{
			q = 7.44*a*0.95;
		}
		else
		{
			if(c == 'e')
			{
				q = 7.44*a*0.97;
			}
		}
		break;	
	case 97:
		if(c == 'm')
		{
			q = 7.93*a*0.95;
		}
		else
		{
			if(c == 'e')
			{
				q = 7.93*a*0.97;
			}
		}
		break;
	
		
		
}
printf("%.2f\n",q);

return 0;			

}
(4)实验分析
记录实验中遇到的问题及解决方法,格式如下:
问题1:

原因:case后没有加空格。
解决办法:在case后加空格。
问题2:

原因:缺少结束语句。
解决办法:在break前加;。
(5)本题PTA提交列表

4 12-24小时制
(1)题目
输入在一行中给出带有中间的:符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。

提示:在scanf的格式字符串中加入:,让scanf来处理这个冒号。
(2)流程图
插入raptor流程图

(3)源代码
插入程序源代码(注意MarkDown格式以及程序格式的规范化,如缩格)

include <stdio.h>

include <stdlib.h>

int main()
{
int a,b;
char n;
char y,z;

scanf("%d %c %d",&a,&n,&b);
if(a > 12 && a < 24)
{
	a = a-12;
	y = 'P';
	z = 'M';
}
else
{
	if(a < 12 && a >= 0)
	{
		a = a;
		y = 'A';
		z = 'M';
	}
}
if(a == 12)
{
	y = 'P';
	z = 'M';
}
if(b < 10)
{
	b = b%10;
}
if(a < 10)
{
	a = a%10;
}

printf("%d%c%d %c%c",a,n,b,y,z);

return 0;			

}
(4)实验分析
记录实验中遇到的问题及解决方法,格式如下:
问题:

原因:少输出了一个变量。
解决办法:在最后输出时加一个%c。

(5)本题PTA提交列表

(四)博客互评

每个同学至少评论三篇其他同学的博客作业,依次列出你所评论的博客地址。对于同学对你的博客作业提出的问题,应积极进行回答,存在的错误应及时改正。希望大家能够在互评的过程中取长补短,共同进步。

李水心:http://www.cnblogs.com/lsx123/p/7780863.html
王丽敏:http://www.cnblogs.com/wlm312/p/7783077.html
马阳光:http://www.cnblogs.com/myg123/p/7784651.html

posted on 2017-11-05 21:59  游人渐稀  阅读(1592)  评论(0)    收藏  举报

导航