#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()。第二点:三角形的判断,两个限制条件大家都知道,但是两边之和应该是较短的两边,两边之差是两个较长的两边。所以应该先对三条边的长度进行排序(此处利用函数实现升序)。第三点:等边三角形和等腰三角形的判断,首先应该判断是否为等边,因为等边一定是等腰,等腰不是等边。两个判断的顺序不能交换。