Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

qsort structs

$
0
0
hi i am trying to use qsort on a structure holding dates, i am trying to sort years out first but not having much luck i have in my code incompatible pointer... it is to do with my qsort in main can anyone tell me what am doing wrong please

struct dates
{
    int index;
    int day;
    int year;
    char month[15];
};

int cmp(const struct dates* p1, const struct dates* p2)
{
    if(p1 -> year < p2 -> year)
    {
        return -1;
    }
    else if(p1 -> year > p2 -> year)
    {
        return 1;
    }
    else return 0;
}

int main() {
    
    int n;

    scanf("%d", & n);

    struct dates *date[n];

    for(int i = 0; i < n; i++)
    {
        date[i] = (struct dates*)malloc(sizeof(struct dates));
    
        scanf("%s %d2 %d2", date[i]->month, & date[i]->day, & date[i]->year);

    }

    qsort(date, n, sizeof(*date), cmp);
    
    for(int i=0; i<n; i++)
    {
        printf("%s %d2 %d2\n\n",date[i]->month, date[i]->day, date[i]->year);
    }
}


Viewing all articles
Browse latest Browse all 51036

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>