Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #define MAX 10
- struct TipoDado {
- char nome[MAX];
- int idade;
- };
- int main() {
- struct TipoDado dados[] ={{"mateus",20},{"maria",25},{"marina",18},{"marcos",40}};// e o mesmo que:
- struct TipoDado aux;
- int i, trocou, qtde;
- qtde = sizeof(dados)/sizeof(dados[0]);
- // ordena pelo nome
- trocou=1;
- while(trocou) {
- trocou = 0;
- for(i=0; i<qtde-1; i++) {
- if(strcmp(dados[i].nome,dados[i+1].nome)>0) {
- // a struct é copiada integralmente com o operador de atribuição
- aux = dados[i];
- dados[i] = dados[i+1];
- dados[i+1] = aux;
- trocou = 1;
- }
- }
- }
- printf("Dados ordenados (pelo nome):");
- for(i=0; i<qtde; i++)
- printf("\n%d - %s \t %d",i+1,dados[i].nome,dados[i].idade);
- // ordena pela idade
- trocou=1;
- while(trocou) {
- trocou = 0;
- for(i=0; i<qtde-1; i++) {
- if(dados[i].idade > dados[i+1].idade) {
- aux = dados[i];
- dados[i] = dados[i+1];
- dados[i+1] = aux;
- trocou = 1;
- }
- }
- }
- printf("\n\nDados ordenados (pelo idade):");
- for(i=0; i<qtde; i++)
- printf("\n%d - %s \t %d",i+1,dados[i].nome,dados[i].idade);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement