Você está na página 1de 2

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

h> #define MAX 15 typedef struct{ int cod; char nome[30]; }lista; typedef struct{ int primeiro,ultimo; lista item[MAX]; }tipolista; int main(){ tipolista m; //fazlistavazia(&m); int i, j, aux; int opc; //Inicializa a lista fazlistavazia(&m); //Cria o ponteiro para arquivo FILE * arq; if( (arq = fopen("nome.txt","r")) == NULL ){ printf("\nNao consegui abrir o arquivo..."); exit(1); } for(m.ultimo=0; m.ultimo<MAX && !feof(arq); m.ultimo++){ fscanf(arq,"%d",&m.item[m.ultimo].cod); fscanf(arq,"%s",&m.item[m.ultimo].nome); } for(m.ultimo=0;m.ultimo<MAX;m.ultimo++){ printf("\n %.4d %s", m.item[m.ultimo].cod,m.item[m.ultimo].nome); } do{ opc=menu(); switch(opc){ case 2: ordenabolha(&m); } }while(opc!=6); return 0; } //Inicializa a lista void fazlistavazia(tipolista *l){ l->primeiro=0; l->ultimo=l->primeiro; } int verificalistavazia(tipolista *l){

return(l->primeiro==l->ultimo); } int menu(){ int num; printf("\n 01 - Ler Arquivo: "); printf("\n 02 - Ordenar modo Bolha: "); printf("\n 03 - Ordenar modo Selecao: "); printf("\n 04 - Ordenar modo Insercao: "); printf("\n 06 - Sair: "); printf("\n Digite a opcao: "); fflush(stdin); scanf("%d",&num); return(num); } void ordenabolha(tipolista * l){ int i, j, tmp; char auxiliar[30]; printf("\nORDENANDO PELO CODIGO"); for(i=0;i<l->ultimo;i++){ for(j=i+1;j<l->ultimo;j++){ if(l->item[i].cod>l->item[j].cod){ tmp=l->item[i].cod; l->item[i].cod=l->item[j].cod; l->item[j].cod=tmp; } } } for(i=0;i<l->ultimo;i++){ printf("\n CODIGO NOME"); printf("\n %d %s", l->item[i].cod,l->item[i].nome); } printf("\nORDENANDO PELO NOME"); for(i=0;i<l->ultimo;i++){ for(j=i+1;j<l->ultimo;j++){ if(l->item[i].nome>l->item[j].nome){ strcpy(auxiliar, l->item.nome); //auxiliar=l->item[i].nome; l->item[i].nome=l->item[j].nome; l->item[j].nome=auxiliar; } } } for(i=0;i<l->ultimo;i++){ printf("\n CODIGO NOME"); printf("\n %d %s", l->item[i].cod,l->item[i].nome); } }

Você também pode gostar