Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #define MAX_NOME 50
- #define MAX_LISTA 1200
- typedef struct{
- char nome[MAX_NOME];
- }Nome;
- typedef struct{
- int qtde;
- Nome *vetor[MAX_LISTA];
- }Lista;
- //prototipos
- void inicia(Lista *listas);
- int carrega(Lista *listas);
- void insere(Lista *listas, char *auxNome, int j);
- void orndena(int maxLista, Lista *listas);
- void exibe(Lista *listas, int maxLista);
- int main()
- {
- int maxLista;
- Lista listas;
- inicia(&listas);
- maxLista=carrega(&listas);
- orndena(maxLista,&listas);
- exibe(&listas,maxLista);
- printf("****** Processo finalizado! ******\n\n");
- return 0;
- }
- void inicia(Lista *listas)
- {
- listas->qtde=0;
- }
- int carrega(Lista *listas)
- {
- int maxLista,j;
- char auxNome[MAX_NOME];
- FILE *fp = fopen("nomes.txt","r");
- if(fp==NULL)
- printf("Erro ao abrir arquivo!");
- fscanf(fp,"%d",&maxLista);
- for(j=0;j<maxLista;j++){
- fscanf(fp,"%s",&auxNome);
- insere(listas,auxNome,j);
- listas->qtde++;
- }
- return maxLista;
- }
- void insere(Lista *listas, char *auxNome, int j)
- {
- char *aux;
- aux=(char*)malloc(sizeof(char)*strlen(auxNome)+1);
- strcpy(aux,auxNome);
- listas->vetor[j]=aux;
- }
- void orndena(int maxLista, Lista *listas)
- {
- int trocou=1, i;
- Lista *aux;
- while(trocou)
- {
- trocou=0;
- for(i=0;i<maxLista-1;i++){
- if(strcmp(listas->vetor[i],listas->vetor[i+1])>0){
- aux=listas->vetor[i];
- listas->vetor[i]=listas->vetor[i+1];
- listas->vetor[i+1]=aux;
- trocou=1;
- }
- }
- }
- }
- void exibe(Lista *listas, int maxLista)
- {
- int i;
- FILE *fp = fopen("nomes_ordenados.txt","w");
- if(fp==NULL)
- printf("Erro ao criar arquivo");
- for(i=0;i<maxLista;i++)
- fprintf(fp,"%04d\t%s\n",i+1, listas->vetor[i]);
- }
Advertisement
Add Comment
Please, Sign In to add comment