Salve e un po' di tempo che sto su questo esercizio che mi sta facendo impazzire...devo ordinare in modo non decrescente una serie di coordinate (x,y) utilizzando qsort della libreria stdlib.h
l'input è composto nella prima riga dal numero delle coordinate da inserire e dopo ovviamente le coordinate da tastiera e l'outpu composto dalle coordinate ordinate.
Ho scritto questo codice:
#include <stdio.h>
#include <stdlib.h>
typedef struct point {
int x;
int y;
}punto;
int conf (const void *a,const void *b){
const punto **pa=(const punto **)a.x;
const punto **pb=(const punto **)b.x;
return *pa-*pb;
}
int main(){
punto **a;
int n,i;
scanf("%d",&n);
a=malloc(n*sizeof(int*));
for (i=0;i<n;i++){
a[i]=malloc(sizeof(punto));
scanf("%d %d",&a[i].x, &a[i].y);
}
qsort(a,n,sizeof(punto),conf);
for (i=0;i<n;i++){
printf("%d %d\n",a[i].x, a[i].y);
}
return 0;
}
Il problema è che al momento della compilazione con gcc mi da una serie di errori tutti uguali dicendo
request for member 'y' in something not a structure or union
printf("%d %d\n",a.x, a.y);
e ovunque ci sia il parametro .x e .y
Ora non capisco bene che cosa mi sfugge qualcuno mi potrebbe aiutare?