sortowanie struktury char,int

sortowanie struktury char,int
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Lokalizacja:Zielona Góra
  • Postów:4
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. : )

Kopiuj
 
#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;
}
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:7 dni
2

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
MarekR22
Moderator C/C++
  • Rejestracja:ponad 17 lat
  • Ostatnio:minuta
1
Kopiuj
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);
}

Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Lokalizacja:Zielona Góra
  • Postów:4
0

przydałby się opis co robi co :)

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:7 dni
0

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


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
ZU
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 4 lata
  • Postów:31
0

a jak posortować w/g alfabetu?

LU
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 5 lat
  • Postów:96
0

Jeśli starasz się za coś wziąć, rób to z należytą starannością.
--------------------------------------------
Kupić kupon chybił-trafił 2zł, napisanie programu losującego liczby jako pierwszego programu w C++ - bezcenne :)
MarekR22
Moderator C/C++
  • Rejestracja:ponad 17 lat
  • Ostatnio:minuta
0

Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.