需要准备的材料分别有:电脑、C语言编译器。
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。
2、在test.cpp文件中,输入C语言代码:。
int a, b, c
scanf("%d%d%d", &a, &b, &c)
if ( a + b >c &&a + c >b &&b + c >a)
printf("能")
else
printf("不能")
return 0
3、编译器运行test.cpp文件,此时输入3个边整数,成功输出了能不能构成三角形的判断结果。
#include <stdio.h>int main()
{
int a,b,c,i,n
printf("请输三角形个数:")
scanf("%d",&n)
printf("\n")
for(i=1i<=ni++)
{ printf("请输三角形边长:")
scanf("%d",&a)
printf("\n")
printf("请输三角形边长:")
scanf("%d",&b)
printf("\n")
printf("请输三角形边长:")
scanf("%d",&c)
printf("\n")
if(a+b<=c||a+c<=b||b+c<=a)
printf("invalid!\n")
else
{
if(a==c||a==b||b==c)
{
if(a==c&&a==b)
printf("等边三角形!\n")
else
printf("等腰三角形!\n")
}
else printf("斜三角形!\n")
}
}
//getchar()
return 0
}
这样子在我的linux下运行没有任何错误,就不知道在你那是出什么问题了
代码如下:
#include <stdio.h>
#include <stdlib.h>
#define EPSINON 1e-3
#define ABS(a) (((a)>0)?(a):(-a)) //?:不支持表达式嵌套
#define ZERO(x) ((x)>-EPSINON &&(x)<EPSINON)
#define MAX(a,b) (((a)>(b))?(a):(b))
#define MIN(a,b) (((a)<(b))?(a):(b))
float a, b, c
float max, mid, min
char input_err_flag = 0
char judge_err_flag = 0
int equal(float a, float b)
{
float tmp
tmp = a - b
tmp = ZERO(ABS(tmp))
return tmp
}
void input(void)
{
a = b = c = 0
printf("输入三条边的值:")
scanf("%f %f %f",&a, &b, &c)
if(!(a>0) || !(b>0) || !(c>0))
{
input_err_flag = 1
}
}
void sort(void)
{
max = MAX(MAX(a,b),c)
min = MIN(MIN(a,b),c)
if(MAX(a,b) <c)
mid = MAX(a,b)
else
mid = MAX(MIN(a,b),c)
}
void judge(void)
{
float max_square, mid_square, min_square, tmp
if(max >= (mid+min))
{
judge_err_flag = 1
}
else
{
max_square = max * max
mid_square = mid * mid
min_square = min * min
tmp = mid_square + min_square
if(equal(mid,min) || equal(max, mid))
{
if(equal(mid, min))
{
if(mid == max)
puts("等边三角形。")
else if(equal(max_square, tmp))
puts("等腰直角三角形。")
else if(max_square <tmp)
puts("等腰锐角三角形。")
else
puts("等腰钝角三角形。")
}
else
{
if(equal(min, mid))
puts("等边三角形。")
else
puts("等腰锐角三角形。")
}
}
else if(equal(max_square, tmp))
puts("直角三角形。")
else if(max_square <tmp)
puts("锐角三角形。")
else
puts("钝角三角形。")
}
}
int main(void)
{
char cs, ch
do
{
input()
sort()
judge()
if(input_err_flag)
{
input_err_flag = 0
while((cs=getchar())!='\n' &&(cs=getchar())!=EOF)
printf("输入错误,a b c必须大于零,是否新输入(y/n):")
}
else if(judge_err_flag)
{
judge_err_flag = 0
while((cs=getchar())!='\n' &&(cs=getchar())!=EOF)
printf("组不成三角形,是否重新输入(y/n):")
}
else
{
while((cs=getchar())!='\n' &&(cs=getchar())!=EOF)
printf("是否再输入一组数据(y/n):")
}
ch = getchar()
}
while(ch=='y' || ch=='Y' || ch=='\n')
puts("Goodbye!")
return 0
}