三角形编程
❶ C++ 编程,三角形类
#include "iostream.h"
#include "math.h"
class CPoint//定义点
{
private:
double x,y;
public:
CPoint(double a,double b){x=a;y=b;}//构造函数
CPoint(){x=0;y=0;}
void Set(double a,double b){x=a,y=b;}//设置点坐标
double GetX(){return x;}
double GetY(){return y;}
};
class CTreiangle//三角形类
{
private:
CPoint x,y,z;
double s1,s2,s3;
public:
void SetTriangle(CPoint P1,CPoint p2,CPoint P3);
bool Test();
double Area();
};
void CTreiangle::SetTriangle(CPoint P1,CPoint p2,CPoint p3)//设置三角形的三个点并计算三条边的边长
{
x=P1;
y=p2;
z=p3;
s1=sqrt((x.GetX()-y.GetX())*(x.GetX()-y.GetX())+(x.GetY()-y.GetY())*(x.GetY()-y.GetY()));
s2=sqrt((x.GetX()-z.GetX())*(x.GetX()-z.GetX())+(x.GetY()-z.GetY())*(x.GetY()-z.GetY()));
s3=sqrt((z.GetX()-y.GetX())*(z.GetX()-y.GetX())+(z.GetY()-y.GetY())*(z.GetY()-y.GetY()));
}
bool CTreiangle::Test()//检测是不是三角形,原理三点不共线
{
if((y.GetX()-x.GetX())*z.GetY()==(y.GetY()-x.GetY())*z.GetX()+x.GetY()*y.GetY()-x.GetY()*x.GetY()-x.GetX()*y.GetY()+y.GetX()*x.GetY())
return false;
else
return true;
}
double CTreiangle::Area()//应用海伦公式计算面积并返回
{
double p,area;
p=(s1+s2+s3)/2.0;
area=sqrt(p*(p-s1)*(p-s2)*(p-s3));
return area;
}
int main()
{
CPoint temp[3];//定义三个点
double tempx,tempy;
CTreiangle treiangle;
while(1)
{
for(int i=0;i<3;i++)
{
cout<<"请输入第"<<i+1<<"个点的X坐标"<<endl;
cin>>tempx;
cout<<"请输入第"<<i+1<<"个点的Y坐标"<<endl;
cin>>tempy;
temp[i].Set(tempx,tempy);
}
treiangle.SetTriangle(temp[0],temp[1],temp[2]);
if(!treiangle.Test())
{
cout<<"输入数据不合法不能够形成三角形"<<endl;
cout<<"重新输入数据"<<endl;
}
else
{
cout<<"三角形的面积为"<<treiangle.Area()<<endl;
cout<<"重新输入数据"<<endl;
}
}
return 0;
}
VC6.0编译运行通过
测试图,以3,4,5为例
❷ 三角形如何编程
下面这个程序是用鼠标画出三角形,不知道你是不是要这种答案了?
Dim paintnow As Boolean
Private Sub Form_Load()
Width = 40
ForeColor = RGB(0, 0, 0)
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
paintnow = True
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If paintnow Then
PSet (X, Y)
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
paintnow = False
End Sub
❸ C语言,怎么编程判断三角形的形状
从小到大排序:a<=b<= c
如果a+b>c,是三角形,否则不是三角形[三角形两边之和大于第三边]
三边相等:等边三角形
两边相等:等腰三角形
a*a+b*b=c*c:直角三角形
❹ java 编程 三角形
按照你的要求编写的Java程序如下:
importjava.util.Scanner;
publicclassD{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.println("请输入三角形的三个边:");
inta=sc.nextInt();
intb=sc.nextInt();
intc=sc.nextInt();if((a+b<=c)||(a+c<=b)||(b+c<=a)){
System.out.println("这不是三角形!");
}elseif(a==b&&b==c){
System.out.println("这是等边三角形!");
}elseif(a==b||b==c||a==c){
System.out.println("这是等腰三角形!");
}elseif(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b){
System.out.println("这是直角三角形!");
}elseif((a*a+b*b>c*c)||(a*a+c*c>b*b)||(b*b+c*c>a*a)){
System.out.println("这是锐角三角形!");
}elseif((a*a+b*b<c*c)||(a*a+c*c<b*b)||(b*b+c*c<a*a)){
System.out.println("这是钝角三角形!");
}
}
}
❺ C语言编程(三角形问题)
1.两边之和大于第三边 且 两边之差小于第三边 这条件能构成三角形
2.a=b=c等边三角形.1成立a=b,c;b=a,c为等腰三角形
❻ 编程数字三角形
递归是不行的,规模太大,用动归,比如第二行,有两个数,他们都应该是第一行的数过来的,所以到第二行的路就是(1,1)到(2,1)和(2,2)加和,第三行,对(3,2)这个数,可能是由(2,1)过来,也可能从(2,2)来,看这两个里存的加和哪个大,就是哪个来的,把它加到第三行里,明白吗?
❼ C语言 编程 关于三角形的
#include<stdio.h>
void angle(int n)
{
int i,j;
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
printf("*");
}
printf("\n");
}
for(i=n-1;i>=1;i--)
{
for(j=1;j<=i;j++)
{
printf("*");
}
printf("\n");
}
}
int main(void)
{
int n;
printf("please input n:\n");
scanf("%d",&n);
angle(n);
return 0;
}
❽ 数字三角形 用C++编程
#include<iostream.h>
#define n 5 //设定三角形为5层,可修改
void main()
{
int sum=0,a[n][n],i,j,max;
cout<<"请按行输入三角形值:\n";
for(i=0;i<n;i++)//将三角形数值存入一个二维数组
{
cout<<"第"<<i+1<<"行:";
for(j=0;j<=i;j++)
cin>>a[i][j];
}
cout<<"输入三角形为:\n";
for(i=0;i<n;i++)//显示输入的三角形数值
{
for(j=0;j<=i;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<"最佳路径为:\n";
for(i=0;i<n;i++)//要从三角形的顶至底的路径经过的数字和最大,则每行都取最大值
{
max=a[i][0];//以下求每行的最大值
for(j=1;j<=i;j++)
if(max<a[i][j])
max=a[i][j];
cout<<max<<" ";
sum+=max;//求最大值的和
}
cout<<"\n最长路径为:"<<sum<<endl;
}
❾ 三角形的编程代码
你是想打印一个三角形吗?
你只要使用循环就是了
❿ 三角形编程
#include <iostream>
#define MAXN 100
using namespace std;
int n,k;
int tri[MAXN][MAXN];
int main()
{
int i,j;
cin>>n>>k;
for (j=0;j<n;j++)
for (i=0;i<n-j;i++)
{
tri[i][j]=k;
k++;
if (k==10) k=1;
}
for (i=0;i<n;i++)
{
for (j=0;j<n-i;j++) cout<<tri[i][j];
cout<<endl;
}
return 0;
}