实验5(答案)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验5

1、以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型,请在【】内填入正确内容。判断三边是否构成三角形的条件是任意两边之和大于第三边,任意两边之差小于第三边。等边三角形的条件是三条边数值相等,等腰三角形是两边相等,直角三角形条件是任意两边的平方和等于第三边的平方和。

测试数据:

(1)输入三边为3,3,3时输出:等边三角形,面积为3.897114 (2)输入三边为3,4,2时输出:一般三角形,面积为2.904738 (3)输入三边为1,2,3时输出:不能组成三角形

(4)输入三边为3,4,5时输出:直角三角形,面积为6.000000 (5)输入三边为3,3,4时输出:等腰三角形,面积为4.472136 (6)输入三边为3,4,3时输出:等腰三角形,面积为4.472136 (7)输入三边为4,3,3时输出:等腰三角形,面积为4.472136

#include

main()

{

float a,b,c;

float s,area;

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

if(【1】)

{

if(【2】)

printf("输入的三边组成等边三角形\n");

else if(【3】)

printf("输入的三边组成等腰三角形\n");

else if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a)) printf("输入的三边组成直角三角形\n");

else printf("输入的三边组成一般三角形\n");

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

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

printf("三角形的面积为:%f\n",area);

}

else printf("输入的三边不能组成三角形\n");

}

填空后程序:

#include

#include

main()

{

float a,b,c;

float s,area;

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

if(a+b>c&&a+c>b&&b+c>a&&fabs(a-b)

{

if((a==b)&&(a==c))

printf("输入的三边组成等边三角形\n");

else if((a==b)||(a==c)||(b==c))

printf("输入的三边组成等腰三角形\n");

else if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a)) printf("输入的三边组成直角三角形\n");

else printf("输入的三边组成一般三角形\n");

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

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

printf("三角形的面积为:%f\n",area);

}

else printf("输入的三边不能组成三角形\n");

}

2. 有一个函数:(5-2.c )

写一段程序,输入x ,输出y 值。 方法一:#include

void main()

{int x,y;

scanf(“%d ”,&x);

if (x<1)

y=x;

else if (x<10)

y=2*x-1;

else

y=3*x-11;

printf(“x=%d,y=%d\n ”,x,y);

}

⎪⎩⎪⎨⎧≥<≤<=01 x 11-3x 10x 1 1-2x 1x x y

运行结果:

注意:此题容易出错的地方是平时我们书写y=2x-1是可以的,但在c里面2与x之间的乘号是不可以省略的.这点需要特别注意,还有一个是当if条件后有多条语句要执行时,需要用大括号括起来,不然满足条件就执行到第一个分号结束.

方法二:#include

void main()

{int x,y;

scanf(“%d”,&x);

if (x<1)

y=x;

if (x>=1&&x<10)

y=2*x-1;

if (x>=10)

y=3*x-11;

printf(“x=%d,y=%d \n”,x,y);

}

运行结果:

3、从键盘输入一个不多于5位的正整数,要求:(5-3.c)

求出它是几位数

分别输出每一位上的数字

按逆序输出各位数字,例如原数为123,输出就应该是321

例如:如果输入的是12345,则输出该数是5位数,万位数为1,千位为2,百位为3,十位为4,个位为5

#include

void main()

{long x,n,wan,qian,bai,shi,ge;/*变量x表示输入的数据,n表示数据的位数,wan表示数据万位上的数值,qian表示数据千位上的数值,bai表示数据百位上的数值,shi表示数据十位上的数值,ge表示数据个位上的数值*/

printf("请输入一个不多于5位的正整数:");

scanf("%ld",&x);

if (x>=10000) n=5;

else if (x>=1000) n=4;

else if (x>=100) n=3;

else if (x>=10) n=2;

else n=1;

相关文档
最新文档