Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <iostream>
- #include <stdio.h>
- #include <cstring>
- #include <vector>
- #include <algorithm>
- #include <utility>
- #include <queue>
- #include <map>
- #include <stack>
- #include <cmath>
- #include <set>
- #include <ctype.h>
- #include <bitset>
- using namespace std;
- struct pessoa{
- char nome[30];
- int idade;
- };
- pessoa p[10]; // crio um vetor p do tipo pessoa
- // ordena em ralação a menor altura
- // se empatar a altura, ordena em ordem alfabetica
- bool comp(pessoa a, pessoa b){ // aqui sempre são os dois parametros do tipo(struct)
- // e nomes quaisquers para as variáveis, eu usei a e b
- if(a.idade < b.idade)
- return true; // como eu quero a menor idade, e a < b, retorno true
- else if(b.idade < a.idade) // pois o primeiro parametro da minha funcao(a)
- return false; // eh sempre verdadeiro, e o segundo(b), sempre falso
- else if(strcmp(a.nome,b.nome) < 0)
- return true; // strcmp == 0, nomes iguais... strcmp < 0, o primeiro parametro vem antes que o segundo
- else // strcmp > 0, o segundo parametro vem antes que o primeiro
- return false;
- }
- int main(){
- int n;
- cin>>n;
- getchar();
- for(int i=0; i<n; i++){
- cin>>p[i].idade>>p[i].nome; // lendo uma idade e um nome na posicao I do meu vetor de pessoa
- }
- sort(p,p+n,comp); // ordenando o vetor p, do jeito que eu quiser na minha funcao comp
- for(int i=0; i<n; i++)
- cout<<p[i].idade<<" - "<<p[i].nome<<endl; // exibindo ordenado
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment