removido
(usa Nenhuma)
Enviado em 01/07/2011 - 00:27h
de uma forma mais simples, você pode armazenar as strings em um vetor e depois ordená-las, nesse exemplo, foram usadas as funções strcmp() e strcpy().
strcmp() compara duas strings: strcmp(string1, string2);
retorna 0, se string1 for igual a string2
retorna 1, se string1 for maior que string2
retorna -1, se string1 for menor que string2
por isso do trecho if(strcmp(nomes[i], nomes[j]) < 0)
strcpy() copia o valor de uma string para outra: strcpy(string1, string2);
string1 passa a ter o conteúdo de string2
ao final o vetor estara com os nomes ordenados e você poderá imprimir ou armazená-los no arquivo.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main() {
char nomes[10][15], aux[15];
int qtde, i, j;
printf("Nº total de nomes: ");
scanf("%d", &qtde);
for(i=0; i<qtde; i++)
scanf("%s", nomes[i]);
for(i=0; i<qtde; i++) {
for(j=0; j<qtde; j++) {
if(strcmp(nomes[i], nomes[j]) < 0) {
strcpy(aux, nomes[i]);
strcpy(nomes[i], nomes[j]);
strcpy(nomes[j], aux);
}
}
}
printf("-nomes ordenados-\n");
for(i=0; i<qtde; i++)
printf("%s\n", nomes[i]);
return 0;
}