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;
- };
- void ordena(struct TipoDado dados[], char chave, int qtde);
- void exibe(struct TipoDado dados[], int qtde);
- int main() {
- struct TipoDado dados[] ={{"mateus",20},{"maria",25},{"marina",18},{"marcos",40}};
- int qtde = sizeof(dados)/sizeof(dados[0]);
- printf("Dados sem ordenacao:\n");
- exibe(dados,qtde);
- ordena(dados,'n',qtde);
- printf("\nDados ordenados pelo nome:\n");
- exibe(dados, qtde);
- ordena(dados,'i',qtde);
- printf("\nDados ordenados pela idade:\n");
- exibe(dados,qtde);
- return 0;
- }
- void exibe(struct TipoDado dados[], int qtde) {
- int i;
- for (i = 0; i < qtde; i++) {
- printf("Nome : %s Idade : %d\n",dados[i].nome,dados[i].idade);
- }
- }
- void ordena(struct TipoDado dados[], char chave, int qtde) {
- int i,j,ageToken,limit = qtde-1;
- char token[MAX];
- if (chave == 'n')
- for (j = 0; j < qtde; j++) {
- for (i = 0; i < limit; i++) {
- if (strcmp(dados[i].nome,dados[i+1].nome) > 0) {
- strcpy(token,dados[i+1].nome);
- ageToken = dados[i+1].idade;
- strcpy(dados[i+1].nome,dados[i].nome);
- dados[i+1].idade = dados[i].idade;
- strcpy(dados[i].nome,token);
- dados[i].idade = ageToken;
- }
- }
- limit--;
- }
- if (chave == 'i')
- for (j = 0; j < qtde; j++) {
- for (i = 0; i < limit; i++) {
- if (dados[i].idade > dados[i+1].idade) {
- strcpy(token,dados[i+1].nome);
- ageToken = dados[i+1].idade;
- strcpy(dados[i+1].nome,dados[i].nome);
- dados[i+1].idade = dados[i].idade;
- strcpy(dados[i].nome,token);
- dados[i].idade = ageToken;
- }
- }
- limit--;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment