websano 0 Denunciar post Postado Março 29, 2015 Olá pessoal, procurei por minha dúvida mas não encontrei uma que se encaixasse em meu problema Tenho um algoritmo de fila estática que: Insere, Remove e Imprime o vetor Preciso que ao imprimir o vetor os valores inseridos sejam ordenados do menor para o maior ex. 5 8 1 7 4 = 1 4 5 7 8 Agradeço dese já: #include <stdio.h> #define TAM 5 typedef struct{ int id; }reg; int inicio = -1; int fim = -1; void inserir(reg *); void imprimir(reg *); void remover(reg *); int main(){ // MENU DE opções reg vet[TAM]; int op; do{ printf("\nMENU\n"); printf("1...........inserir \n"); printf("2...........imprimir\n"); printf("3...........remover \n"); printf("4...........sair \n"); scanf("%d", &op); switch (op) { case 1: inserir(vet); break; case 2: imprimir(vet); break; case 3: remover(vet); break; default: break; } }while(op!=4); return 0; } void inserir(reg *vet){ system ("cls"); if(fim == TAM-1) printf("Vetor cheio! \n"); else{ if(inicio == -1) inicio++; printf("Informe um valor: \n"); scanf("%d", &vet[++fim].id); system ("cls"); printf("Valor inserido"); } } void imprimir(reg *vet){ system ("cls"); if(fim > -1){ int i = 0; for(i=inicio; i<=fim; i++){ printf("%d ", vet[i].id); } }else printf("Vetor vazio! \n"); } void remover(reg *vet){ if(fim > -1){ printf("Removido registro na posicao: %d \n", fim); printf("Idade: %d\n", vet[fim].id); fim--; if(fim == -1) inicio--; }else printf("Vetor vazio! \n"); } Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Março 30, 2015 Sugiro usar a função qsort. É a forma mais prática de alcançar seu objetivo (cumprir o requisito do trabalho e ganhar a nota). Mais educativo seria concluir que é melhor armazenar tudo já ordenado, fazendo com que as inserções respeitassem uma ordem total. Compartilhar este post Link para o post Compartilhar em outros sites