#include <stdio.h>
void Swap(int* a, int* b, int* c) {
int tmp = 0;
if (a > b) {
tmp = *a;
*a = *b;
*b = tmp;
}
if (b > c) {
tmp = *b;
*b = *c;
*c = tmp;
}
if (a > b) {
tmp = *a;
*a = *b;
*b = tmp;
}
}
int Panduan(int a, int b, int c) {
if (a + b > c && c - b < a) {
if (a == b && a == c)
return 1;
else {
if (a == b || a == c || b == c)
return 2;
else
return 3;
}
}
else
return 0;
}
int main() {
int a = 0;
int b = 0;
int c = 0;
while (scanf("%d%d%d", &a, &b, &c) != EOF) {
Swap(&a, &b, &c);
int d = Panduan(a, b, c);
if (d == 0)
printf("Not a triangle!");
else if(d == 1)
printf("Equilateral triangle!");
else if(d == 2)
printf("Isosceles triangle!");
else
printf("Ordinary triangle!");
printf("\n");
}
return 0;
}
主要注意以下几点:第一点:多次输入用while()。第二点:三角形的判断,两个限制条件大家都知道,但是两边之和应该是较短的两边,两边之差是两个较长的两边。所以应该先对三条边的长度进行排序(此处利用函数实现升序)。第三点:等边三角形和等腰三角形的判断,首先应该判断是否为等边,因为等边一定是等腰,等腰不是等边。两个判断的顺序不能交换。

京公网安备 11010502036488号