编辑代码

#include <stdio.h>
struct item{
    int left;
    int right;
};

void findArea(struct item area[], int length){
    struct item temp;
    for(int i = 0; i < length; i++){
        for(int j = i + 1; j < length; j++){
            if(area[i].right > area[j].right){
                temp = area[i];
                area[i] = area[j];
                area[j] = temp;
            }
        }
    }

    for(int i = 0; i < length; i++){
        printf("(%d, %d) ", area[i].left, area[i].right);
    }

    temp = area[0];
    printf("\n(%d, %d) ", area[0].left, area[0].right);
    for(int i = 1; i < length; i++){
        if(temp.right <= area[i].left){
            temp = area[i];
            printf("(%d, %d) ", area[i].left, area[i].right);
        }
    }
}

int main () {
    struct item area[] = {{6, 8}, {2, 4}, {3, 5}, {1, 5}, {5, 9}, {8, 10}};
    int length = sizeof(area) / sizeof(area[0]);

    findArea(area, length);

    return 0;
}