设计三角形问题的程序
输入三个整数a、b、c,分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形、等腰三角形、一般三角形(特殊的还有直角三角形),以及不构成三角形。(等腰直角三角形,判断为等腰三角形)
现在要求输入三个整数a、b、c,必须满足以下条件:
条件1 1≤a≤100 条件4 a<b+ c
条件2 1≤b≤100 条件5 b<a+ c
条件3 1≤c≤100 条件6 c<a+ b
String triangle(int a,int b,int c) 返回字符型
程序要求:
1)先显示:“请输入三角形的三条边:”
2)只要有不满足条件1,2,3之一,就返回“边的值不在范围内!”
3)只要有不满足4,5,6之一,就返回“不构成三角形”
4)根据边的情况分别返回:“等边三角形”“等腰三角形”“直角三角形”“一般三角形”
#include "stdafx.h"
#include "stdio.h"
char* triangle(int a, int b, int c)
{
if ((a >= 1 || a <= 100) && (b >= 1 || b <= 100) && (c >= 1 || c <= 100))
{
if (a<(b + c) && b<(a + c) && c<(a + b))
{
if (a == b&&b == c)
{
return "等边三角形\n";
}
else if (a == b || a == c || b == c)
{
return "等腰三角形\n";
}
else if (a*a == (b*b + c*c) || b*b == (a*a + c*c) || c*c ==( a*a + b*b))
{
return "直角三角形\n";
}
else
{
return "一般三角形\n";
}
}
else
{
return "不构成三角形\n";
}
}
else
{
return "边的值不在范围内\n";
}
}
int main()
{
printf("请输入三角形的三条边:");
float a[3] = {0.0f};
if (scanf("%f %f %f", &a[0], &a[1], &a[2]) != 3)
{
printf("输入格式错误!\n");
return 0;
}
float n;
int m;
//判断是否为整数
for (m = 0; m < 3; m++)
{
n = a[m];
if (n >= 0)
{
if ((n - (int)n) < 1e-6 || (n - (int)n) > 0.999999)
continue;
else
{
printf("不是整数\n");
break;
}
}
else
{
if (-(n - (int)n) < 1e-6 || -(n - (int)n) > 0.999999)
continue;
else
{
printf("不是整数\n");
break;
}
}
}
if (m==3)
printf("%s", triangle(a[0], a[1], a[2]));
getchar();
getchar();
return 0;
}