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

cum pot ordona alfabetic cuvintele în c++ cu ajutorul lui struct? ​

Răspunsuri la întrebare

Răspuns de Staniislaw
1

Răspuns:

poti sa folosesti funcita strcmp si apoi sa faci o interschimbare

exemplu

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

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

if (strcmp(student[i].nume,student[j].nume)==1)  

                       {

                               temp=student[i];

                               student[i]=student[j];

                               student[j]=temp;

                       }

Explicație:


itachiuchiha443322: mulțumesc muuuult!!!!!
Răspuns de andrei750238
2

Buna !

Poti folosi un struct pentru a retine fiecare cuvant. Sortarea structurilor in ordine se va face cu o functie de tip comparator (va returna true daca doua elemente a si b de tip struct sunt in ordinea care trebuie).

Putem folosi functia sort din algorithm sau putem construi noi o astfel de functie pentru sortare. Am folosit functia sort deoarece e foarte eficienta

Program C++ exemplu :

#include <iostream>

#include <algorithm>

using namespace std;

struct Cuvant {

char txt[100];

};

//Functie comparator pentru sortare cuvinte

bool comp_cuv(const Cuvant& a, const Cuvant& b) {

return strcmp(a.txt, b.txt) <= 0;

}

int main() {

//Citire nr cuvinte

int nr_elemente;

cout << "Nr cuvinte : ";

cin >> nr_elemente;

//Citire vector cuvinte

Cuvant* v = new Cuvant[nr_elemente];

cout << "Introduceti cuvinte : ";

for (int index = 0; index < nr_elemente; index++)

 cin >> v[index].txt;

//Sortare vector cuvinte

sort(v, v + nr_elemente, comp_cuv);

//Afisare vector cuvinte

cout << "Cuvinte sortate crescator :\n";

for (int index = 0; index < nr_elemente; index++)

 cout << v[index].txt << " ";

     

      delete[] v;

}


itachiuchiha443322: mulțumesc mult pt ca mi ai răspuns dar ahh. multe lucruri de aici încă nu le am făcut, dar mulțumesc mult!!!
Alte întrebări interesante