C语言题目

编写一个程序根据用户输入三角形的三条边长,判断是何种三角形,最好加上注释啊.

第1个回答  2007-08-30
额……有点难……主要是 要了解有那几种三角形
我试试:

main(){
int a,b,c,tmp; /*技术不佳,要用临时变量*/
printf("\nPlease input the lengths:"); /*提示*/
scanf("%d,%d,%d",&a,&b,&c); /*输入*/
if(a+b<c||a+c<b||c+b<a) printf("这不是三角形。"); /*利用三角形的三边关系,确定输入的三条边可否构成三角形*/
if((a==b)||(b==c)) /*判断是否为等腰三角形,但是等边三角形包含等腰三角形,所以用嵌套判断*/
if((a==b)&&(b==c)) /*判断是否为等边三角形*/
{
printf(" 等边 ");
}else{
printf(" 等腰 ");} /*不是等边就是等腰*/
if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(c*c+b*b==a*a)) printf(" 直角 三角形\n"); /*利用勾股定理判断是否为直角三角形*/
if(a>b) {tmp=a;a=b;b=tmp;}
if(a>c) {tmp=a;a=c;c=tmp;}
if(b>c) {tmp=b;b=c;c=tmp;}
/*整理三边,以从小到大顺序排列,利于判断*/
if(a*a+b*b<c*c) /*判断是否为钝角三角形,如果是,则短边的平方之和小于长边的平方*/
{printf("钝角 三角形\n");
}else{printf("锐角 三角形\n");} /*否则为锐角三角形*/
}
第2个回答  2007-08-31
这个比较长:)
#include <iostream>
using namespace std;
void main()
{
float data[3];
float a,b,c;
loop:cout<<"请输入三个边长:"<<endl;
cin>>data[0]>>data[1]>>data[2];
cout<<"*****************************"<<endl;
float temp;
int i,j;
for(i=0;i<2;i++) //从小到大排序,交换法
{
for(j=i+1;j<3;j++)
{
if(data[j]<data[i])
{
temp = data[i];
data[i] = data[j];
data[j] = temp;
}
}
}
temp=data[0]+data[1];
if(temp<data[2])
{
cout<<"不是三角形:("<<endl;
}
else if (data[0]==data[1]&&data[0]==data[2])//等边三角形
{
cout<<"等边三角形:)"<<endl;
}
else if (data[0]==data[1])//等腰三角形,第一种情况
{
a=data[0]*data[0];
c=data[2]*data[2];
temp=a*2;

if (temp==c)
{
cout<<"等腰直角三角形"<<endl;
}
else if (temp>c)
{
cout<<"等腰锐角角角三角形"<<endl;
}

else
cout<<"等腰钝角角角三角形"<<endl;
}
else if (data[0]==data[2])//等腰三角形,第二种情况
{
a=data[0]*data[0];
c=data[1]*data[1];
temp=a*2;

if (temp==c)
{
cout<<"等腰直角三角形"<<endl;
}
else if (temp>c)
{
cout<<"等腰锐角角角三角形"<<endl;
}

else
cout<<"等腰钝角角角三角形"<<endl;
}
else if (data[1]==data[2])//等腰三角形,第三种情况
{
a=data[1]*data[1];
c=data[0]*data[0];
temp=a*2;

if (temp==c)
{
cout<<"等腰直角三角形"<<endl;
}
else if (temp>c)
{
cout<<"等腰锐角角角三角形"<<endl;
}

else
cout<<"等腰钝角角角三角形"<<endl;
}
else //一般三角形
{
a=data[0]*data[0];
b=data[1]*data[1];
c=data[2]*data[2];
temp=a+b;
if (temp==c)
{
cout<<"一般的直角三角形"<<endl;
}
else
{
temp=a+b-2*data[0]*data[1]; //余玄定理判断
if (temp>0)
{
cout<<"一般锐角三角形"<<endl;
}
else
cout<<"一般钝角三角形"<<endl;
}
}

cout<<"*****************************"<<endl;
goto loop;//循环
}
第3个回答  2007-08-30
还是在这发吧!
/* 版本:1.0
作者:韩耿
完成日期:2007.8.30
程序描述:根据用户输入三角形的三条边长,判断是何种三角形
*/
#include "stdio.h"
main()
{
/*定义三条边并初始化*/
double a=0;
double b=0;
double c=0;/*假设c为最长边*/

double i;
double y;

/*输入三条边*/

printf("Plese input first side!\n");
printf("a=");
scanf("%lf",&a);

printf("Plese input second side!\n");
printf("b=");
scanf("%lf",&b);

printf("Plese input third side!\n");
printf("c=");
scanf("%lf",&c);

/*开始计算*/
i=a*a+b*b;
y=c*c;

if(i>y)
{
printf("dunjiao");
}
else if(i=y)
{
printf("zhijiao");
}

else
{
printf("ruijiao");
}

getch();
}发吧!
第4个回答  2007-08-30
#include "stdio.h" //Head files
#include "math.h"

void main ( void )
{

float a=0,b=0,c=0; //定义三角形三边
float temp=0; //一个很有用的临时变量

scanf("%f,%f,%f",&a,&b,&c); //得到三边数值

//按abc顺序为三边排序
if(b>a) //先比较b,a 结果一定是 a>b
{
temp=a; //经典的比较并置换数值
a=b;
b=temp;
}

//再放置c
//c的可能位置有 1.c> a>b 2.a>c>b 3.a>b>c
//其中,3不用处理
//1 将c向后移动两次
//2 将c向后移动一次

if(c>a) //情况1
{
temp=a;
a=c;
c=temp;

temp=b;
b=c;
c=temp;
}
else if(c>b&&c<a) //情况2
{
temp=b;
b=c;
c=temp;
}

//b^2+c^2 与 a^2 比较
//小学的知识,不用解释了吧

temp=b*b+c*c-a*a;
if(temp>0)
{printf("A sharp angle one");}
else if(temp==0)
{printf("A right angle one");}
else
{printf("An obtuse angle one");}
}
第5个回答  2007-08-30
直接写就得了,用if!这也问?!本回答被提问者采纳
相似回答