Boa noite galera! ^^ Minha primeira postagem aqui no fórum. Enfim, estou fazendo um trabalho da faculdade e preciso classificar uma struct em ordem alfabética. A struct é simples, só tem nome e idade. Depois que eu faço a classificação usando o código abaixo, as posições ficam sem valor algum, como se estivessem "vazias". O código é muito grande, por isso vou postar só um trecho do código. Obrigado! (:
printf ("Deseja classificar por nome ou idade? ");
fflush (stdin); gets(resp2);
if ((strcmp(resp2, "nome")==0) || (strcmp(resp2, "idade")==0))
{
for (i=0; i<=48; ++i)
{
for (j=i+1; j<=49; ++j)
{
if (strcmp (resp2, "nome") ==0)
{
if (strcmp(cad.nome, cad[j].nome) ==1 )
{
strcpy (x.nome, cad.nome);
strcpy (cad.nome, cad[j].nome);
strcpy (cad[j].nome, x.nome);
x.idade = cad.idade;
cad.idade = cad[j].idade;
cad[j].idade = x.idade;
}
}
else
{
if (cad.idade > cad[j].idade)
{
strcpy (x.nome, cad.nome);
strcpy (cad.nome, cad[j].nome);
strcpy (cad[j].nome, x.nome);
x.idade = cad.idade;
cad.idade = cad[j].idade;
cad[j].idade = x.idade;
}
}
}
}
system ("cls");
printf ("A classifica%c%co foi feita com sucesso! \nOs administrativos foram cadastrados por %s", 135, 198, resp2);
chamadaMenu ();
}
else
{
printf ("\n\nO comando %s %c um comando inv%clido!", resp2, 130, 161);
chamadaMenu ();
}