Informatică, întrebare adresată de george91florin, 8 ani în urmă

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ăspunsuri la întrebare

Răspuns de Sergetec
1

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;

}

Alte întrebări interesante