Small Triangles, Large Triangles

  • + 0 comments

    include

    include

    include

    struct triangle { int a; int b; int c; };

    typedef struct triangle triangle;

    int compute_area(triangle tr){ int p = (tr.a + tr.b + tr.c) / 2; int s = sqrt(p * (p - tr.a) * (p - tr.b) * (p - tr.c)); return s; }

    int compare(const void *tr1, const void tr2){ int area1 = compute_area((triangle*)tr1); int area2 = compute_area((triangle)tr2); return (area1 - area2); }

    void sort_by_area(triangle* tr, int n) { /** * Sort an array a of the length n */ // Sort the computed area array. qsort(tr, n, sizeof(triangle), compare); }

    int main() { int n; scanf("%d", &n); triangle *tr = malloc(n * sizeof(triangle)); for (int i = 0; i < n; i++) { scanf("%d%d%d", &tr[i].a, &tr[i].b, &tr[i].c); } sort_by_area(tr, n); for (int i = 0; i < n; i++) { printf("%d %d %d\n", tr[i].a, tr[i].b, tr[i].c); }

    triangle tr1 = { 54, 62, 11 };
    triangle tr2 = { 31, 41, 14 };
    triangle tr3 = { 20, 23, 21 };
    printf("-------------- Test\n");
    

    1. printf("%d ", compute_area(tr1)); printf("%d ", compute_area(tr2)); printf("%d ", compute_area(tr3));

    return 0;
    

    }