Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
viniciosbarbosa

C ordenação por data de nascimento

Recommended Posts

pessoal tenho uma duvida na ordenação tenho que ordenar do mais novo  para o mais velho tudo importa dia mês e ano de nascimento mais não sei como proceder

ao final do programa tenho que imprimir a matricula dos alunos;

meu código ate agora

a entrada seria essa

5
12345 12 07 1978 erick
23489 11 03 2009 joao
98762 05 12 1976 maria
34561 11 07 1978 roberto
34599 07 05 1976 ricardo

 

e a saida seria 
matricula 23489
matricula 12345
matricula 34561
matricula 98762
matricula 34599

 

 

mas esta dando um valor diferente 
 

#include<stdio.h>
#include<string.h>
typedef struct{
int matricula;
int dia;
int mes;
int ano;
char nome[200];
}aln;


int main(){
int n,i;
    scanf("%d",&n);
	aln aluno;
	aln vet[n];
	for(i=0;i<n;i++){
	scanf("%d %d %d %d %s",&aluno.matricula,&aluno.dia,&aluno.mes,&aluno.ano,aluno.nome);

	vet[i]=aluno;
	}

	int veto[n];
    for(i=0;i<n;i++){
    veto[i]=vet[i].matricula;
    }

	int temp;
    int j;
    for(i=0;i<n;i++)
    for(j=i+1;j<n;j++)
    if(vet[i].ano>=vet[j].ano&&vet[i].dia>=vet[j].dia &&vet[i].mes>=vet[j].mes  ){
	temp=veto[i];
	veto[i]=veto[j];
	veto[j]=temp;
    }


    for(j=0;j<n;j++){

    printf("matricula %d\n",veto[j]);


    }


    return 0;
}

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@viniciosbarbosa 

 

Precisa apenas organizar a lógica de comparação nesse if:

if(vet[i].ano>=vet[j].ano&&vet[i].dia>=vet[j].dia &&vet[i].mes>=vet[j].mes  ){
	temp=veto[i];
	veto[i]=veto[j];
	veto[j]=temp;
    }

 

 

Supondo que temos selecionado dois índices: i = 0   e   y  = i+1; 

1- Verifique se o ano i é menor que o ano[y].

  - Se for menor:                 troque os dois.         Resete o índice do loop ( i = 0 )

  - Se não for menor, mas for igual: Etapa 2

 

2- Verifique se o mês i é menor que o mês [y].

  - Se for menor:                 troque os dois.        Resete o índice do loop ( i = 0 )

  - Se não for menor, mas for igual: Etapa 3

 

3- Verifique se o dia i é menor que o dia[y].

  - Se for menor:                 troque os dois.        Resete o índice do loop ( i = 0 )

  - Se não for menor, mas for igual, ai você decide como ficará.

Editado por TYSQUARE89

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×