Programação Progressiva
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Programação Progressiva

Fórum para dúvidas dos sites: Programação Progressiva, Java Progressivo, C Progressivo


Você não está conectado. Conecte-se ou registre-se

Problemas na ordenação de strings

2 participantes

Ir para baixo  Mensagem [Página 1 de 1]

1Problemas na ordenação de strings  Empty Problemas na ordenação de strings Qua maio 20, 2015 12:52 pm

seubarbieri



//programa que ordena caracters//

Estou tendo problemas para ordenar strings de um mesmo vetor. Alguma ajuda?



#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main (void)
{
int i=0,qtd=0,j=i+1;
char nome[i][20],x[20];
printf("Digite a quantidade de nomes a serem preenchidos \n");
scanf("%d",&qtd);
while(i<qtd)
{

printf( "Digite o %dº nome \n",i);
fflush(stdin);
fgets(nome[i],20,stdin);
i++;
}

i=0;
while(i<qtd)
{
j=i+1;
if(strcmp(nome[i],nome[j])>0)
{
strcpy(x,nome[i]);
strcpy(nome[i],nome[j]);
strcpy(nome[j],x);

}

i++;

}



i=0;
printf("Os respectivos nomes ordenados sao : \n \n");
while(i<qtd)
{

printf(" %s \n\n ", nome[i]);
i++;

}


}

AbnerRMS



Você tem que repetir o loop de ordenação pra cada nome da matriz.

Tipo, põe este while dentro de um outro laço - pode ser for ou while mesmo.
Código:
i=0;
while(i<qtd)
{
    j=i+1;

    if(strcmp(nome[i], nome[j])>0)
    {
        strcpy(x, nome[i]);
        strcpy(nome[i], nome[j]);
        strcpy(nome[j], x);
    }

    i++;
}

Obs: na declaração de um vetor use um número ou uma constante pra indicar a sua quantidade de elementos, não uma variável.
Ex: nome[10][20], não nome[i][20] - a não ser que "i" seja uma constante.

É isso... Qualquer coisa é só falar. Very Happy

Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos