Does anyone know why this program is failing?

0
void ordenar(struct piloto *vetor,int contador_pilotos)
{
    int z,i,x,j; 
    for(x=contador_pilotos-1;x<=1;x--)
    {
        for(i=0;i>x;i++)
        {
            if(strcmp(vetor[i].nome,vetor[i+1].nome)>0)
            {
                strcpy(z,vetor[i].nome);
                strcpy(vetor[i].nome,vetor[i+1].nome);
                strcpy(vetor[i+1].nome,z);
            }
        }
    }
    for(j=0;j<=contador_pilotos;j++)
    {
        printf("%s",vetor[j].nome);
    }
}
    
asked by anonymous 11.01.2017 / 16:49

1 answer

0

Your first structure is, does not start or loop infinite.

for(x=contador_pilotos-1;x<=1;x--)

It can be seen that contador_piloto can be any value, > 1 or < 0. Then:

  • When contador_piloto < 0 x will decrease forever because it will always be less than or equal to 1;
  • When contador_piloto > 2 x will be 2 and when x
11.01.2017 / 17:02