👤

Pentru o grupa de studenti, secretara facultatii are nevoie de numele, prenumele si data nasterii fiecarui student. Sa se ordoneze studentii alfabetic, dupa nume, iar pentru studentii cu acelasi nume dupa prenume.

Răspuns :

Salut!

Ai rezolvarea in C++ mai jos

#include <iostream>

#include <cstring>

using namespace std;

struct student

{

 char nume[21];

 char prenume[21];

 int data_nastere;

};

student a[1001];

int main()

{

 int n;

 cin >> n;

 for (int i = 1; i <= n; ++i)

 {

   cin >> a[i].nume >> a[i].prenume >> a[i].data_nastere;

 }

 for (int i = 1; i < n; ++i)

 {

   for (int j = i + 1; j <= n; ++j)

   {

     if (strcmp(a[i].nume, a[j].nume) > 0)

     {

       swap(a[i], a[j]);

     }

     if (strcmp(a[i].nume, a[j].nume) == 0)

     {

       if (strcmp(a[i].prenume, a[j].prenume) > 0)

       {

         swap(a[i], a[j]);

       }

     }

   }

 }

 for (int i = 1; i <= n; ++i)

 {

   cout << a[i].nume << " " << a[i].prenume << " " << a[i].data_nastere << '\n';

 }

 return 0;

}