sortowanie struktury char,int

0

Witam, mam do wykonania zadanie które polega na tym ze wczytujac dane do struktury osoba (imie,nazwisko,rok urodzenia,plec).
Po pierwsze muszę posortować ja wg wieku.
Po drugie sortować wg imienia (chyba alfabetycznie).
Na koniec muszę zastosować funkcję na wyszukiwanie osób w danym przedziale wieku np wszystkie anny w wieku od 15 do 25 lat.
Na tą chwilę kod wygląda tak :)
Brakuje mi pomysłu jak wykonać te 3 funkcję, może ktoś mnie naprowadzi. : )

 
#include<stdio.h>
#include<stdlib.h>
#define N 2

typedef struct osoba tosoba;


struct osoba
{
  char imie[30];
  char nazwisko[30];
  int rok;
  char plec[30];
};

void fill(tosoba tab[],int size)
{
int i ;
for (i=0;i<size;i++)
    {
    printf("\n Podaj imie ");
    scanf("%s",tab[i].imie);

    printf("\n Podaj Nazwisko ");
    scanf("%s",tab[i].nazwisko);

    printf("\n Podaj rok urodzenia ");
    scanf("%d",&tab[i].rok);
    
    printf("\n podaj plec ");
    scanf("%s",tab[i].plec);
    }

  
}

void out(tosoba tab[],int size)
{
int i;
for (i=0;i<size;i++)
    {
    printf("\n");
      printf("\n%s",tab[i].imie);
      printf("\n%s",tab[i].nazwisko);
      printf("\n%d",tab[i].rok);
      printf("\n%s",tab[i].plec);
     }
}

void sortuj_wg_wieku (tosoby tab[],int size)
{
int i,max=0,min=0;
 max=tab[i].rok;
for (i=0;i<size;i++)
{
    if (tab[i].rok>max)
      max=tab[i].rok;
} 
min=tab[i].rok;
for (i=0;i<size;i++)
{
    if (tab[i].rok<min)
      min=tab[i].rok;
} 
 
 tutaj nie wiem :) 
  
}

int main()
{

tosoba tab[N];

system("cls");
fill(tab,N);
out(tab,N);


printf("\n");
system("pause");
return 0;
}
1
int porownanieWieku(const void * a, const void * b) {
  return (((tosoby*)a)->rok - ((tosoby*)b)->rok);
}

void sortuj_wg_wieku (tosoby tab[],int size) {
    qsort(tab, size, sizeof(tab[0]), porownanieWieku);
}
0

przydałby się opis co robi co :)

0

Pod podanym linkiem masz opis, dokładniejszy - nie istnieje.

0

a jak posortować w/g alfabetu?

1 użytkowników online, w tym zalogowanych: 0, gości: 1