Tengo hecho este codigo para ordenar un array usando el campo key que es un int, pero no me lo ordena del todo bien y no se donde esta el error, me podrian ayudar?
Código
#include <stdio.h> typedef struct { char data[4096]; int key; } item; item array[] = { {"Juan", 3}, {"Pedro", 4}, {"Victor", 2}, {"Antonio", 5}, {"Alejandro", 1}, }; void sort(item *a, int n) { int i = 0, j = 0; int s = 1; item* p; for(; i < n & s != 0; i++) { s = 0; p = a; j = n-1; do { if( p->key > (p+1)->key) { item t = *p; *p = *(p+1); *(p+1) = t; s++; } } while ( --j >= 0 ); } } int main() { int i; sort(array,5); for(i = 0; i < 5; i++){ } return 0; }
Muchas gracias de antemano