问题描述
- 关于三角形的判定问题 谢谢各位
-
题目如下
给定三条边,请你判断一下能不能组成一个三角形。Input
输入数据第一行包含一个数M,接下有M行,每行一个实例,包含三个正数A,B,C。其中A,B,C <1000;Output
对于每个测试实例,如果三条边长A,B,C能组成三角形的话,输出YES,否则NO。Sample Input
2
1 2 3
2 2 2Sample Output
NO
YES代码如下
#include
#include
int main()
{
int n,i,p;
double a[100][100];
double d,b,c;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i
{
for(p=0;p
{
scanf("%lf",&a[i][p]);
}
d=a[i][0];b=a[i][1];c=a[i][2];
if(d+b>c && fabs(d-b)
{
printf("YES
");
}
else
{
printf("NO
");
}
}
}
return 0;
}
这是我用数组做的当我不用数组的时候像这样
#include
#include
int main()
{
int n,i;
double a,b,c;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i
{
scanf("%lf%lf%lf",&a,&b,&c);
if(a+b>c && fabs(a-b)<c)
printf("YES
");
else
printf("NO
");
}
}
return 0;
}
就对了
第一个代码提示Runtime Error(ACCESS_VIOLATION)
找不出原因 求指教谢谢了
解决方案
第一个程序输入不对,应该这么写
scanf("%d",&n)
for (int i = 0; i < n; i++)
{
//每组数据的判断
scanf("%d %d %d", &a, &b, &c);
...
}
解决方案二:
double a[100][100];占用的栈空间是100*100*8/1024=80M左右,栈直接爆炸了
一般栈的大小在1~几M,由编译器和操作系统决定
解决方案三:
三角形问题
三角形问题
凸多边形区域划分为三角形问题