锐角三角形
题目描述
n条边,任选3条边,能组成多少个锐角三角形(选的边不同就认为是不同的三角形)?
输入
第一个是一个整数T(1≤T≤1000),表示样例的个数。
每个样例占2行,第一行是一个整数n,3≤n≤100,表示边数。 第二行是n个整数ai,1≤ai≤10000,表示边的长度。
输出
依次每行输出一个样例的结果。
样例输入
2 4 1 1 1 1 3 1 2 3
样例输出
4 0
代码如下:
#include<stdio.h>
#include<stdio.h>
#include<stdio.h>
int sheng(int a[])//冒泡排序
{
int t,i,j;
for(i=0;i<2;i++)
{
for(j=i+1;j<3;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
}
int main()
{
int k;
scanf("%d",&k);
while(k--)
{
int a[101],b[3];
int n,i,j,k,p,flag=0;//两顿爆int
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n-2;i++)
{
for(j=i+1;j<n-1;j++)
{
for(k=j+1;k<n;k++)
{
b[0]=a[i];b[1]=a[j];b[2]=a[k];//分组
sheng(b);//排序 这样就可以很容易找最大角余弦值了
p=b[0]*b[0]+b[1]*b[1]-b[2]*b[2];//分母恒大于零 所以看分子正负就好
if(p>0)
{
flag++;//计数
}
}
}
}
printf("%d\n",flag);
}
}
该博客介绍了如何利用C语言解决一个蓝桥杯编程竞赛中的问题——根据给定的边长,计算可以形成多少个锐角三角形。博客包含问题描述、输入输出格式说明及样例,并提供了代码示例。

1026

被折叠的 条评论
为什么被折叠?



